[Home
| Unterrichtssequenzen |
PAT 01] |
unit uFenster; (* ******************************************************************** *) (* K L A S S E : FENSTER *) (* -------------------------------------------------------------------- *) (* Version : 2.2 *) (* Autor : Siegfried Spolwig, OSZ Handel, 10997 *) (* *) (* Aufgabe : uebernimmt E/A und steuert die Funktionen zur Patien- *) (* tenverwaltung über ein GUI *) (* Compiler : DELPHI 4.0 *) (* Aenderung : V. 1.0 - 28-AUG-98 *) (* 1.3 - 02-OKT-01 Pat agg. ADR *) (* 2.0 - 04-SEP-98 Liste *) (* 2.2 - 04-SEP-98 Load, Store *) (* ******************************************************************** *) interface (* ==================================================================== *) uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, uPatient, uSListe; type TFensterFrm = class(TForm) SteuerPnl : TPanel; MeldePnl : TPanel; NeuBtn : TButton; AnzeigeBtn : TButton; AendernBtn : TButton; LoeschBtn : TButton; OkBtn : TButton; ErsterBtn : TButton; RueckBtn : TButton; VorBtn : TButton; LetzterBtn : TButton; EndeBtn : TButton; Personbox : TGroupBox; NameLbl : TLabel; NameEdt : TEdit; VornameLbl : TLabel; VornameEdt : TEdit; GebTagLbl : TLabel; GebTagEdt : TEdit; AdrBox : TGroupBox; StrasseLbl : TLabel; StrasseEdt : TEdit; PlzLbl : TLabel; PlzEdt : TEdit; OrtLbl : TLabel; OrtEdt : TEdit; TelLbl : TLabel; TelEdt : TEdit; MEDbox : TGroupBox; SexLbl : TLabel; Label1 : TLabel; BlutLbl : TLabel; SexEdt : TEdit; KKEdt : TEdit; BlutEdt : TEdit; procedure NeuBtnClick (Sender: TObject); procedure AnzeigeBtnClick (Sender: TObject); procedure AendernBtnClick (Sender: TObject); procedure LoeschBtnClick (Sender: TObject); procedure EndeBtnClick (Sender: TObject); procedure OkBtnClick (Sender: TObject); procedure VorBtnClick (Sender: TObject); procedure RueckBtnClick (Sender: TObject); procedure LetzterBtnClick (Sender: TObject); procedure ErsterBtnClick (Sender: TObject); procedure MeldePnlClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } procedure Init; procedure DatenAktualisieren (var pat : TPatient); procedure MaskeAktualisieren (pat : TPatient); public { Public-Deklarationen } end; var FensterFrm : TFensterFrm; (* -------------------- B e s c h r e i b u n g ------------------------- Oberklasse : TForm Bezugsklassen : TListe, TPatient, GUI-Klassen Methoden -------- Init Auftrag: alle GUI-Felder leeren; vorher : - nachher: - NeuBtnClick Auftrag: Maske leeren für die Eingaben eines neuer Patientendaten zum Suchen oder Neuerfassen. Die Daten werden verarbeitet, wenn OK, Ändern oder Löschen gedrückt ist. nachher: Maske ist leer AnzeigeBtnClick Auftrag: Aktuellen Eintrag zum Suchen abschicken und in der Liste suchen. Schlüssel ist der Name. Beenden mit Click. vorher : Liste ist nicht leer nachher: Gesuchter AktuellerPatient wird angezeigt oder Fehlermeldung AendernBtnClick Auftrag: Die in die Maske eingetragenen Daten als Änderung übernehmen. vorher : Liste ist nicht leer nachher: Patient ist in die Liste zurueckgeschrieben. Maske ist leer. LoeschBtnClick Auftrag: Aktuellen Patienten loeschen nach Rückfrage. vorher : Liste ist nicht leer. Der zu löschenden Patient wurde gefunden. Maske ist leer. nachher: Patient ist aus der Liste entfernt EndeBtnClick Auftrag: Programm beenden, Fenster schließen, Daten speichern vorher : - nachher: Daten gespeichert, Programm beendet OkBtnClick Auftrag: Aktuellen Patienten aus der Maske uebernehmen. Es kann solange editiert werden, bis OK geklickt ist. Ist der Name leer, wird kein Eintrag erzeugt. vorher : - nachher: Aktueller Patient ist uebernommen und an die Listem angefuegt. VorBtnClick Auftrag: zum nächsten Patienten in der Liste blättern. Ist das Listenende erreicht oder ist die Liste leer, erscheint eine Meldung. vorher : - nachher: Listenposition ist die nächste. Neuer aktueller Patient wird angezeigt. RueckBtnClick Auftrag: zum nächsten Patienten in der Liste rückwärtsblättern. Ist der Listenanfang erreicht oder ist die Liste leer, erscheint eine Meldung. vorher : - nachher: Listenposition ist die vorige. Neuer aktueller Patient wird angezeigt. LetzterBtnClick Auftrag: zur letzten Position in der Liste springen.Ist die Liste ist leer, erscheint eine Meldung. vorher : - nachher: Listenposition ist letztes Element. Letzter Eintrag wird angezeigt. ErsterBtnClick Auftrag: zur ersten Position in der Liste springen. Ist die Liste leer, erscheint eine Meldung. vorher : - nachher: Listenposition ist erstes Element. Erster Patient wird angezeigt. MaskeAktualisieren (pat : TPatient) Auftrag: Attributwerte des aktuellen Patienten in die GUI-Maske übernehmen vorher : pat ist vorhanden, sonst bleibt Maske leer. nachher: Feldinhalte werden in der Maske angezeigt. DatenAktualisieren (var : TPatient); Auftrag: Inhalte aller Felder der GUI-Maske an den aktuellen Patienten uebergeben. vorher : Patient ist initialisiert. nachher: alle Masken-Inhalte sind an den aktuellen Patienten uebergeben. ----------------------------------------------------------------------- *) implementation {$R *.DFM} (* ==================================================================== *) var AktuellerPatient : TPatient; Patientenliste : TListe; procedure TFensterFrm.FormCreate(Sender: TObject); (* ------------------------------------------------------------------- *) begin FensterFrm.Init; Patientenliste := TListe.Create; AktuellerPatient := Tpatient.Create; Patientenliste.Load('pat.dat'); end; procedure TFensterFrm.Init; (* ------------------------------------------------------------------- *) begin FensterFrm.Caption := ' PAT 01 - V. 2.2 OSZ - SchrottSoft'; NameEdt.Text := ''; VorNameEdt.Text := ''; GebTagEdt.Text := ''; StrasseEdt.Text := ''; PlzEdt.Text := ''; OrtEdt.Text := ''; TelEdt.Text := ''; SexEdt.Text := ''; KKEdt.Text := ''; BlutEdt.Text := ''; end; procedure TFensterFrm.NeuBtnClick (Sender: TObject); (* ------------------------------------------------------------------- *) begin Init; Caption := ' PAT 01 - Neue Eingaben'; end; procedure TFensterFrm.AnzeigeBtnClick(Sender: TObject); (* ------------------------------------------------------------------- *) begin Caption := ' PAT 01 - Patient einzeln anzeigen'; MaskeAktualisieren(AktuellerPatient); end; procedure TFensterFrm.AendernBtnClick (Sender: TObject); (* ------------------------------------------------------------------- *) begin MeldePnl.Caption := ' Nicht fertig ...' end; procedure TFensterFrm.LoeschBtnClick (Sender: TObject); (* ------------------------------------------------------------------- *) begin MeldePnl.Caption := ' Nicht fertig .....'; end; procedure TFensterFrm.OkBtnClick(Sender: TObject); (* ------------------------------------------------------------------- *) var NeuerPatient : TPatient; begin
NeuerPatient := TPatient.Create; // neues Exemplar muss in die Liste
Datenaktualisieren (NeuerPatient);
Patientenliste.Append (NeuerPatient);
Init;
end;
procedure TFensterFrm.VorBtnClick(Sender: TObject); (* ------------------------------------------------------------------- *) begin Init; MeldePnl.Caption := ''; Patientenliste.Next; AktuellerPatient := Patientenliste.GetElement; MaskeAktualisieren (AktuellerPatient); end; procedure TFensterFrm.RueckBtnClick(Sender: TObject); (* ------------------------------------------------------------------- *) begin Init; MeldePnl.Caption := ''; Patientenliste.Previous; AktuellerPatient := Patientenliste.GetElement; MaskeAktualisieren(AktuellerPatient); end; procedure TFensterFrm.LetzterBtnClick(Sender: TObject); (* ------------------------------------------------------------------- *) begin MeldePnl.Caption := ''; Patientenliste.Last; AktuellerPatient := Patientenliste.GetElement; MaskeAktualisieren(AktuellerPatient); end; procedure TFensterFrm.ErsterBtnClick(Sender: TObject); (* ------------------------------------------------------------------- *) begin MeldePnl.Caption := ''; Patientenliste.First; AktuellerPatient := Patientenliste.GetElement; MaskeAktualisieren(AktuellerPatient); end; procedure TFensterFrm.EndeBtnClick(Sender: TObject); (* ------------------------------------------------------------------- *) begin Patientenliste.Store('pat.dat'); Patientenliste.Free; Close; end; procedure TFensterFrm.MeldePnlClick(Sender: TObject); (* ------------------------------------------------------------------- *) begin MeldePnl.Caption := ''; end; procedure TFensterFrm.DatenAktualisieren (var pat : TPatient); (* ------------------------------------------------------------------- *) begin Pat.SetName (NameEdt.Text); Pat.SetVorName (VorNameEdt.Text); Pat.SetGeburtstag (GebTagEdt.Text); Pat.Adresse.SetStrasse(StrasseEdt.Text); Pat.Adresse.SetPlz (PlzEdt.Text); Pat.Adresse.SetOrt (OrtEdt.Text); Pat.Adresse.SetTelefonNr (TelEdt.Text); Pat.SetGeschlecht (SexEdt.Text[1]); Pat.SetKrankenkasse (KKEdt.Text); Pat.SetBlutgruppe (BlutEdt.Text); end; procedure TFensterFrm.MaskeAktualisieren (pat : TPatient); (* ------------------------------------------------------------------- *) begin NameEdt.Text := Pat.GetName; VorNameEdt.Text := Pat.GetVorName ; GebTagEdt.Text := Pat.GetGeburtstag; StrasseEdt.Text := Pat.Adresse.GetStrasse; PlzEdt.Text := Pat.Adresse.GetPlz ; OrtEdt.Text := Pat.Adresse.GetOrt; TelEdt.Text := Pat.Adresse.GetTelefonNr; SexEdt.Text := Pat.GetGeschlecht; KKEdt.Text := Pat.GetKrankenkasse; BlutEdt.Text := Pat.GetBlutgruppe; end; END. |