Einzelnen Beitrag anzeigen

SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#1

TObjectList und TListBox

  Alt 5. Aug 2021, 15:02
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?
Steffen
  Mit Zitat antworten Zitat