Das kann man auch noch schicker gestalten, wenn man das IsNew-Flag an das Kontakt-Object hängt.
Nur ich betrachte 2 Fälle in einer proc, die sich aber sehr ähnlich sind.
btw, ich habe da ein kleines Speicherleck entdeckt

wenn ein neuer Kontakt nicht gespeichert wird.
Delphi-Quellcode:
procedure TfrmAdressen.NewContact;
var
Details : TDetails;
Contact : TContact;
begin
Details := TDetails.Create(nil);
try
Details.IsNewContact := True;
Details.Caption := 'Neuer Kontakt';
Contact := TContact.Create;
Details.Contact := Contact;
Details.ShowModal;
if Contact.HasBeenModified then
begin
ContactCollection.Add(Contact);
ContactCollection.HasBeenModified := True;
FillListbox;
UpdateStatusbar;
end
else
Contact.Free; // Wenn nichts eingegeben wurde, dann hängt das hier sonst in der Luft
finally
Details.Release;
end;
end;
Kaum macht man's richtig - schon funktioniert's

Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)