Hallo,
ich habe folgende Fragestellung:
In meinem Programm speichere ich die Daten (MyObjt) in einer von TObjectList abgeleteten Klasse MyObjtLst.
Zum Auswählen einzelner Objekte dieser Liste und zum Umsortieren, Löschen und Hinzufügen von Objekten will ich eine ListBox (MyListBox) verwendet.
Bisher hatte ich keine andere Idee als beim Anzeigen des Fensters zur Dateneingabe alle Enträge der ObjektListe an die ListBox zu übergeben:
Delphi-Quellcode:
procedure TDataDlg.FormShow(Sender: TObject);
var
i:Integer;
begin
MyListBox.Clear;
for i:=0 to MyObjtLst.Count-1 do
MyListBox.AddItem(MyObjtLst[i].Name,MyObjtLst[i]);
MyObjtLst.OwnsObjects:=False;
end;
und beim Schliessen des Fenster wieder zurückzuspeichern:
Delphi-Quellcode:
procedure TDataDlg.FormClose(Sender: TObject; var Action: TCloseAction);
var
i:Integer;
MyObjt : TMyObjt;
begin
MyObjtLst.Clear;
for i:=0 to MyListBox.Items.Count-1 do
begin
MyObjt:=MyListBox.Items.Objects[i] as TMyObjt;
MyObjtLst.Add(MyObjt);
end;
MyObjtLst.OwnsObjects:=True;
end;
Aber ist diese hin und her zwischen den Listen nicht etwas zu umsrändlich?
Gibt es eine einfachere bzw. bessere Lösung?