|
[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. |