unit madressliste; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, mneueintrag, meintrag, morderedlist; type TMain = class(tform) Panel1: TPanel; ednachname: TEdit; lbnachname: TLabel; Panel2: TPanel; btneu: TButton; Panel3: TPanel; btanfang: TButton; btvor: TButton; lbleer: TLabel; btzurueck: TButton; btende: TButton; edvorname: TEdit; lbvorname: TLabel; edprivat: TEdit; edarbeit: TEdit; edmobil: TEdit; lbprivat: TLabel; lbarbeit: TLabel; lbmobil: TLabel; btloeschen: TButton; procedure btneuclick(sender: TObject); procedure FormCreate(Sender: TObject); procedure btanfangclick(sender: TObject); procedure btvorclick(sender: TObject); procedure btzurueckclick(sender: TObject); procedure btendeclick(sender: TObject); procedure btloeschenclick(sender: TObject); private { Private-Deklarationen } sortierteliste: TOrderedList; Nachname: string; Vorname: string; privat: string; Arbeit: string; mobil: string; procedure public { Public-Deklarationen } var Main: TMain; implementation {$R *.DFM}
procedure TMain. var Eintrag: TEintrag; if not sortierteliste.isempty then Eintrag := TEintrag(sortierteListe.getItem()); Nachname := Eintrag.getNachname(); Vorname := Eintrag.getVorname(); privat := Eintrag.getPrivat(); Arbeit := Eintrag.getArbeit(); mobil := Eintrag.getmobil(); ednachname.text := Nachname; edvorname.text := Vorname; edprivat.text := privat; edarbeit.text := Arbeit; edmobil.text := mobil; lbleer.caption := ''; end else ednachname.text := ''; edvorname.text := ''; edprivat.text := ''; edarbeit.text := ''; edmobil.text := ''; lbleer.caption :='Liste leer!' procedure TMain.btNeuClick(Sender: TObject); var NeuEintrag: TNeuEintrag; Eintrag: TEintrag; NeuEintrag := TNeuEintrag.create(Main); NeuEintrag.ShowModal(); if not NeuEintrag.getAbbruch then Nachname := NeuEintrag.getNachname(); Vorname := NeuEintrag.getVorname(); privat := NeuEintrag.getprivat(); Arbeit := NeuEintrag.getArbeit(); mobil := NeuEintrag.getmobil(); Eintrag := TEintrag.create(); Eintrag.setNachname(Nachname); Eintrag.setVorname(Vorname); Eintrag.setPrivat(privat); Eintrag.setArbeit(Arbeit); Eintrag.setmobil(mobil); sortierteliste.insertitem(eintrag); anzeigen() Neueintrag.destroy();
procedure TMain.FormCreate(Sender: TObject); sortierteliste := TOrderedList.create(); procedure TMain.btAnfangClick(Sender: TObject); sortierteliste.tofirst(); procedure TMain.btVorClick(Sender: TObject); sortierteliste.next(); if sortierteliste.isbehind then sortierteliste.previous(); procedure TMain.btZurueckClick(Sender: TObject); sortierteliste.previous(); if sortierteliste.isbefore then sortierteliste.next(); procedure TMain.btEndeClick(Sender: TObject); sortierteliste.tolast(); procedure TMain.btLoeschenClick(Sender: TObject); sortierteliste.delete(); if sortierteliste.isbehind then sortierteliste.previous(); end.
unit mitem; interface uses classes; type TItem =class(tobject) public function isequal(pitem: TItem): boolean; virtual; abstract; function islower(pitem: TItem): boolean; virtual; abstract; function isgreater (pitem: TItem): boolean; virtual; abstract; implementation end.
unit meintrag; interface uses dialogs, mitem; type TEintrag = class(titem) private Nachname: string; Vorname: string; privat: string; Arbeit: string; mobil: string; public function getnachname(): string; function getvorname(): string; function getprivat(): string; function getarbeit(): string; function getmobil(): string; procedure setnachname(name: string); procedure setvorname(name: string); procedure setprivat(nummer: string); procedure setarbeit(nummer: string); procedure setmobil(nummer: string); function islower(pitem: TItem): boolean; override; implementation function TEintrag.getNachname(): string; result := Nachname; function TEintrag.getVorname(): string; result := Vorname; function TEintrag.getPrivat(): string; result := privat; function TEintrag.getArbeit(): string; result := Arbeit; function TEintrag.getMobil(): string; result := mobil; procedure TEintrag.setNachname(Name: string);
Nachname := Name; procedure TEintrag.setVorname(Name: string); Vorname := Name; procedure TEintrag.setPrivat(Nummer: string); privat := Nummer; procedure TEintrag.setArbeit(Nummer: string); Arbeit := Nummer; procedure TEintrag.setMobil(Nummer: string); mobil := Nummer; function TEintrag.isLower(pItem: TItem): boolean; if self.nachname < TEintrag(pItem).nachname then result := true else if self.nachname = TEintrag(pItem).nachname then result := self.vorname < TEintrag(pItem).Vorname else result := false; end.
unit mneueintrag; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TNeuEintrag = class(tform) Panel1: TPanel; lbvorname: TLabel; lbnachname: TLabel; lbprivat: TLabel; lbarbeit: TLabel; lbmobil: TLabel; edvorname: TEdit; ednachname: TEdit; edprivat: TEdit; edarbeit: TEdit; edmobil: TEdit; Panel2: TPanel; btuebernehmen: TButton; btabbruch: TButton; procedure btuebernehmenclick(sender: TObject); procedure btabbruchclick(sender: TObject); private { Private-Deklarationen } Abbruch: boolean; public { Public-Deklarationen } function getabbruch(): boolean; function getnachname(): string; function getvorname(): string; function getprivat(): string; function getarbeit(): string; function getmobil(): string; implementation {$R *.DFM} procedure TNeuEintrag.btUebernehmenClick(Sender: TObject); Abbruch := false; close(); procedure TNeuEintrag.btAbbruchClick(Sender: TObject); Abbruch := true; close();
function TNeuEintrag.getAbbruch(): boolean; result := Abbruch; function TNeuEintrag.getNachname(): string; result := ednachname.text; function TNeuEintrag.getVorname(): string; result := edvorname.text; function TNeuEintrag.getprivat(): string; result := edprivat.text; function TNeuEintrag.getArbeit(): string; result := edarbeit.text; function TNeuEintrag.getMobil(): string; result := edmobil.text; end.