Programmiertechnisch sind folgende Schritte in
FensterForm erforderlich:
-
Die Fachklasse hinzufügen und einbinden bei
uses ....: uPerson
-
Ein aktuelles Exemplar für die
Person deklarieren bei var: AktuellePerson : TPerson,
(weil Botschaften nur zwischen Exemplaren(!) ausgetauscht
werden können)
-
Aktuelles
Exemplar in TFensterFrm.FormCreate erzeugen: AktuellePerson
:= TPerson.Create
-
Der Transport der Daten (Daten und Fenster aktualisieren)
wird mit zwei privaten Fenster-Methoden erledigt:
a) vom Fenster zum Datenobjekt Person
procedure
TFensterFrm.DatenAktualisieren(var Pers : TPerson);
// ---------------------------------------------------------
begin
Pers.SetName (NameEdt.Text);
Pers.SetGroesse (StrToFloat (GroesseEdt.Text));
Pers.SetGewicht (StrToFloat (GewichtEdt.Text));
end; |
b) vom Datenobjekt Person zum Fenster
procedure
TFensterFrm.MaskeAktualisieren(Pers : TPerson);
// ------------------------------------------------------
begin
NameEdt.Text := Pers.GetName;
GroesseEdt.Text := FloatToStr (Pers.GetGroesse);
GewichtEdt.Text := FloatToStr (Pers.GetGewicht);
BMIEdt.Text := FloatToStr (Pers.HatBMI);
end; |
Jetzt
kann der Benutzer durch Anklicken eines Buttons bestimmen, wann das
passieren soll.
Mit dem OK-Button wird der Datentransport zum Personen-Objekt
aufgerufen:
procedure TFensterFrm.OKBtnClick(Sender:
TObject);
// ----------------------------------------------
begin
DatenAktualisieren(AktuellePerson);
Init;
end; |
Mit
dem Anzeige-Button wird der Datentransport zum Fenster aufgerufen:
procedure
TFensterFrm.AnzeigeBtnClick(Sender: TObject);
// ----------------------------------------------------
begin
MaskeAktualisieren(AktuellePerson);
end; |
Programm starten und eigenen
B-M-I prüfen! :)
|