Einzelnen Beitrag anzeigen

Chefx

Registriert seit: 13. Jun 2009
Ort: Radebeul
241 Beiträge
 
Turbo Delphi für Win32
 
#1

[gelöst] Objectlist gibt nix aus?

  Alt 5. Apr 2010, 16:36
hey DPs,

Ich brauch eure Hilfe.
Ich will 2 werte (Strings) in eine Liste speichern, da dachte ich an eine Objectlist mit einem Objekt mit den 2 Strings gespeichert werden.
Wenn ich die wieder auslesen sind keine werte drin?

Delphi-Quellcode:
type
  tstrl = class
  private
    s1,s2:string;
    procedure clear;
  end;

 ...
var
  objectlist:TObjectList;
  strl:Tstrl;

implementation

{$R *.dfm}

//strl ---------------------
procedure tstrl.clear;
begin
  with self do begin
    s1:='';
    s2:='';
  end;
end;
//strl -------//////--------

procedure TForm1.FormCreate(Sender: TObject);
begin
  objectlist:=TObjectList.Create(true);
  strl:=tstrl.Create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  strl.s1:=edit1.Text;
  strl.s2:=edit2.Text;
  objectlist.Add(strl);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  edit3.Text:=Tstrl(objectlist.items[strtoint(edit5.text)]).s1;
  edit4.Text:=Tstrl(objectlist.items[strtoint(edit5.text)]).s2;

  { das habe ich auch probiert:

  strl:=Tstrl(objectlist.items[strtoint(edit5.text)]);
  edit3.Text:=strl.s1;
  edit4.Text:=strl.s2;
  }

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  strl.Free;
  objectlist.Free; // <-- ungültiger Zeigeroperator
end;
am ende kommt noch ein schöner Ungültiger Zeigeroperator aber woran liegt das?
2 Fragen:
a) keine werte werden ausgelesen (keine fehlermeldung)
b) Ungültiger Zeigeroperator beim freigeben der Objectlist

Ich danke im voraus

MfG
Chefx
ein Sprichwort für Programmierer:
"Viele wege fürn zur EXE, aber ob sie funktioniert ist die andere Frage."
schau mal bei www.xlite.de.tc vorbei
  Mit Zitat antworten Zitat