![]() |
Re: Kleine Adress-Datenbank
Zitat:
|
Re: Kleine Adress-Datenbank
OK, hier dein Code für einen neuen Kontakt:
Delphi-Quellcode:
und hier für das Bearbeiten:
procedure TfrmAdressen.NewContact;
var Details : TDetails; Contact : TContact; begin Details := TDetails.Create(nil); // Edit, New try Details.IsNewContact := True; // New Details.Caption := 'Neuer Kontakt'; // New Contact := TContact.Create; // New Details.Contact := Contact; // New Details.ShowModal; // Edit, New if Contact.HasBeenModified then // Edit, New begin ContactCollection.Add(Contact); // New ContactCollection.HasBeenModified := True; // Edit, New FillListbox; // Edit, New UpdateStatusbar; // Edit, New end; finally Details.Release; // Edit, New end; end;
Delphi-Quellcode:
jetzt fassen wir das mal zusammen:
procedure TfrmAdressen.ShowContactDetails;
var Details : TDetails; begin if (lbContacts.ItemIndex > -1) then // Edit begin Details := TDetails.Create(nil); // Edit, New try Details.Contact := TContact(lbContacts.Items.Objects[lbContacts.ItemIndex]); // Edit Details.ShowModal; // Edit, New if Details.Contact.HasBeenModified then // Edit, New begin ContactCollection.HasBeenModified := True; // Edit, New FillListbox; // Edit, New UpdateStatusbar; // Edit, New end; finally Details.Release; // Edit, New end; end; end;
Delphi-Quellcode:
Nun ist es eine Funktion :)
procedure TfrmAdressen.EditContactDetails(const IsNew : Boolean );
var Details : TDetails; Contact : TContact; begin if IsNew or (lbContacts.ItemIndex > -1) then begin Details := TDetails.Create(nil); try if IsNew then begin Contact := TContact.Create; Details.Caption := 'Neuer Kontakt'; end else Contact := TContact(lbContacts.Items.Objects[lbContacts.ItemIndex]); Details.IsNewContact := IsNew; Details.Contact := Contact; Details.ShowModal; if Details.Contact.HasBeenModified then begin if IsNew then ContactCollection.Add(Contact); ContactCollection.HasBeenModified := True; FillListbox; UpdateStatusbar; end; finally Details.Release; end; end; end; cu Oliver |
Re: Kleine Adress-Datenbank
Also ich finde da meine Lösung aber etwas übersichtlicher.
|
Re: Kleine Adress-Datenbank
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; |
Re: Kleine Adress-Datenbank
Hallo Michael,
ich habe gerade mal Deine kleine Adressdatenbank getestet. Die Adressdatenbank ist klein und schnuckelig. Aber ein paar Kritik- und Verbesserungspunktee habe ich trotzdem :
|
Re: Kleine Adress-Datenbank
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Kleine Adress-Datenbank
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Edit : Anhang hinzugefügt. |
Re: Kleine Adress-Datenbank
Ich lasse bisher nur die Anzeige der Telefonnummer in der Listbox formatieren. Gespeichert wird sie wie eingegeben.
Und das mit der TNA konfigurierbar machen, ist mir für die kleine Anwendung zu viel Arbeit. |
Re: Kleine Adress-Datenbank
Die Symbole in der ListBox sehen sehr pixelig aus wenn ein Item markiert ist. Wenn du in der Methode DrawItems dein TIcon weglässt und direkt die Draw-Methode der ImageList verwendest siehts besser aus.
Delphi-Quellcode:
ImgList.Draw(Canvas, Rect.left + 4, Rect.Top + 4, 0, dsTransparent, itImage);
|
Re: Kleine Adress-Datenbank
Mein Delphi 2006 kennt die Bezeichner dsTransparent und itImage nicht, obwohl die Unit Controls eingebunden ist. Und mit
Delphi-Quellcode:
sehe ich keinen großen Unterschied.
Main.frmAdressen.ImageList1.Draw(Canvas, ARect.left + 4, ARect.Top + 4, 6);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz