Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#14

Re: Bei TList, Record auf Datenänderung reagieren

  Alt 28. Dez 2009, 00:03
Hallo Michael,
danke für Deine Hilfe. Ich habe mittlerweile die Lösung selber gefunden. In der TList war überall der letzte Datensatz gespeichert. Das lag daran, dass ich die Klasse nicht für jeden Eintrag neu erstellt habe.
Wie ich das Problem gelöst hatte, habe ich mich noch in die TObjectList eingelesen und nun darauf alles umgestellt. Die TObjetList funktioniert sogar noch ein bisschen besser als die TList, von der Speicherverwaltung her. Das ganze sieht nun so aus. Meine Klassen-Deklaration aus Beitrag #10 und dann der folgende Sourcecode :
Delphi-Quellcode:
{...}

var
  GesellschafterListe : TObjectList;

// so erstelle ich die TObjectListe
  GesellschafterListe := TObjectList(true);

// so mache ich das mit jedem neuen Object für die Liste
  GesellschafterListe.Add(TGesellschaftsname.Create);
  TGesellschaftsname(GesellschafterListe.Last).OnChange := WertAenderung;
  TGesellschaftsname(GesellschafterListe.Last).StammNr :=
     StrToInt(LV_Kundendaten.Items.Item[LV_Kundendaten.Selected.Index].SubItems.Strings[1]);
  TGesellschaftsname(GesellschafterListe.Last).Gesellschaftername :=
     Edt_Gesellschaftsname.Text;

// so gebe ich die TObjectListe wieder frei
  GesellschafterListe.Free

{...}

procedure TMainForm.WertAenderung(Sender: TObject);
begin
  ShowMessage('Hier wird auf die Änderung reagiert');
end;
Das funktioniert alles so wie es soll. Ich habe jetzt nur noch eine Frage, muss ich für jedes Object, welches ich erstelle das OnChange-Ereignis neu zuweisen oder kann ich es auch einmal für die ganze ObjectListe zuweisen ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat