Hallo
Ich habe irgendwie ein Verständnisproblem mit Stringlisten und Verknüpften Objekten. Ich habe folgenden Methoden (die auch funktionieren):
Delphi-Quellcode:
procedure a;
var
TempStrList : TStringlist;
TempStr : ^String;
begin
i := 0;
for i to 10 do begin
new(TempStr);
TempStr^ := IniFile.ReadString(TempStrList.Strings[i],....);
ComboboxXY.ItemsAddObject(TempStrList.Strings[i],TObject(TempStr));
end;
TempStrList.Free;
end;
procedure b;
var
Tmp : ^String;
begin
Tmp := Pointer(ComboboxXY.Items.Objects[ComboboxXY.ItemIndex]);
Edit1.Text := Tmp^;
end;
Ich haben nun probiert anstatt Zeigern direkt die Instanzen zu übergeben (Strings). Jedoch bekomme ich dann in der procedure b einen Fehler... (vermutlich weil ich die Stringliste in a freigegeben habe, oder?) Müsste ich also einfach eine globale Stringlist definieren?
Oder ist die Lösung mit Zeigern besser? Doch da müsste ich am Ende des Programms noch den Speicher freigeben....:
Delphi-Quellcode:
OnDestroy-Ereignis:
...
for i:=0 to ComboboxXY.Items.Count-1 do
Dispose(Pointer(ComboboxXY.Items.Objects[i]))
Ich seh da irgendwie nicht wirklich durch...
es dankt und grüsst
Tom