Thema: Delphi Pointer zuweisen

Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: Pointer zuweisen

  Alt 19. Okt 2003, 16:17
Du erzeugst zwar die Liste, hast darin jedoch noch keine Einträge - also Pointer.
Als nextes versuchst Du auf das 1. Element der Liste zuzugreifen (was noch nicht existiert) und also "knallt" es.
Versuch mal so:
Delphi-Quellcode:
type
  TTest = Record // oder Object
    //irgendeinInhalt
  end;
  TTestZeiger = ^TTest;
var MeineListe : TList;
    MeinZeiger : TTestZeiger;
    i : Integer;
begin
  MeineListe := TList.Create;
  begin // while oder for - Schleife
    TList.Add(new(MeinZeiger)); // erzeugt Neues TTest-Object/Record/WasAuchImmer
                                // und liefert einen TTestZeiger zurück, der direct
                                // mit Add an's Ende der MeineListe gehangen wird
  end;
  // Wenn Du fertig bist, solltest Du nicht vergessen, MeineListe wieder freizugeben
  // und natürlich auch die Objecte , die Du mit new() erzeugt hast
  for i := MeineListe.Count-1 downto 0 do
  begin
    Dispose(TTestZeiger(MeineListe[i])); // gibt den für das i'te TTestObject reservierten
                                         // Speicher frei
    MeineListe.Delete(i); // gibt den Zeiger auf das nun schon nicht mehr
                                         // gültige i'te TTest-Object frei
  end;
  MeineListe.Free; // fertig!
end;
Tim Leuschner
  Mit Zitat antworten Zitat