is-Logo "Dicke Kinder" -  V. 1.1
         GUI und Person  -   Aufgabe und Hinweise

S. Spolwig


[Home | Unterrichtssequenzen]
[Startseite]

Page down

GUI-Klasse und Fachklasse verbinden

Das Zusammenspiel der beiden Klassen wird mit 2 GUI-Methoden organisiert:

   DatenAktualisieren und
   FensterAktualisieren.

Diese beiden Methoden tauschen die Botschaften über den jeweils neuesten Stand zwischen den Objekten aus.

 





DatenAktual.
------------->
<------------
MaskeAktual.

s. Bild

Programmiertechnisch sind folgende Schritte in FensterForm erforderlich:

  1. Die Fachklasse hinzufügen und einbinden bei uses ....: uPerson

  2. Ein aktuelles Exemplar für die Person deklarieren bei var: AktuellePerson : TPerson,
    (weil Botschaften nur zwischen Exemplaren(!) ausgetauscht werden können)

  3. Aktuelles Exemplar in TFensterFrm.FormCreate erzeugen: AktuellePerson := TPerson.Create

  4. 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! :)


©    05. Oktober 2008    Siegfried Spolwig

page_top