Jupp an der Stelle hab eich den richtigen Kontakt, aber in der Form, die dann geöffnet wird, werden die falschen Daten angezeigt, nämlich die, die zu ungefilterten Liste gehören. Kann es sein, dass wir an der falschen Stelle suchen? Hie rnoch mal die gesamte Doppelklick-Routine:
Delphi-Quellcode:
procedure TfrmAdressen.ShowContactDetails;
var
ContactForm : TContactForm;
begin
if (lbContacts.ItemIndex > -1) then
begin
ContactForm := TContactForm.Create(nil);
try
// Kontakt Objekt von Listbox an Kontaktformular übergeben
// Das Listbox Objekt ist ein Zeiger auf das Objekt in der Kontakt Collection
ContactForm.Contact := TContact(lbContacts.Items.Objects[lbContacts.ItemIndex]);
ContactForm.ContactList := ContactCollection;
ContactForm.CurrentContactIndex := lbContacts.ItemIndex;
ContactForm.ShowModal;
// wenn geändert Modified flag setzen
if ContactForm.Contact.HasBeenModified then
begin
// nichts mehr zu machen
// Das Kontakt Objekt wurde im Kontaktformular geändert.
// Da wir nur mit Zeigern arbeiten,
// ist auch das Objekt in der Kontakt Collection betroffen.
ContactCollection.HasBeenModified := True;
FillListbox;
UpdateStatusbar;
end;
finally
ContactForm.Release;
end;
end;
end;