bevor ich hier wieder ein seltsames Konstrukte erstelle, frage ich lieber nach.
Ich habe einige identisch aufgebaute TobjectList mit ID und Bezeichnung je Objekt. (Die Daten sind in einer DB gesichert)
Nun möchte ich in einer 'Form' die Bezeichnungen editieren, Erstellen und Löschen können.
Da es mehrere Listen aus verschiedenen Klassen, jedoch dem selben Aufbau sind, dachte ich das ganze nur ein mal zu erstellen.
Ich habe also eine Form mit einer TListbox, in welche die Daten (Bezeichnungen) eingelesen werden und einigen Buttons (Erstellen, Löschen, Bearbeiten, Fertig, Abbruch).
In der Listbox kann ich dann die gewünschten Funktionen auch ausführen. So weit ist auch alles klar.
Bei Verlassen der Form soll nun die ursprüngliche TObjectlist aktualisiert bzw. mit der Listbox synchronisiert werden.
Hierbei soll die ursprüngliche ID erhalten bleiben.
Beispiel (F ist die Form, Abteilungen die Objektliste mit den Daten aus der Datenbank, lbListe die Listbox):
Ich habe eine TObjektliste Abteilungen.
Code: Alles auswählen
for i := 0 to Abteilungen.Count - 1 do
F.lbListe.Items.AddObject(Abteilungen.Items[i].Bezeichnung, TObject(IntPtr(Abteilungen.Items[i].ID)));
if F.ShowModal = mrOk then
begin ...

Eine zweite Möglichkeit wäre, die Objektliste an die Form zu übergeben (müsste ich Property machen) und direkt zu bearbeiten, aber wenn ich TObjektlist als Typ verwende, ist in der Form ja noch keine ID und Bezeichnung bekannt. (wie gesagt, ich habe viele solcher Objektlisten, weswegen ich eine universale Form zur Bearbeitung möchte)
Aber wie ich euch Spezialisten kenne, gibt es bestimmt noch eine elegantere Lösung?
