[Home
| Programmiersprachen |
Delphi] |
unit uFenster; // ********************************************************************** (* K L A S S E : FENSTER *) (* -------------------------------------------------------------------- *) (* Version : 1.1 *) (* Autor : Siegfried Spolwig, OSZ Handel, 10997 *) (* Aufgabe : Veranschaulichung des Datenflusses bei M-V-C *) (* Observer Pattern Design nach einem Entwurf von *) (* Christer Höstklint, Fredrik Öhman *) (* Compiler : DELPHI 7.0 *) (* Aenderung : V. 1.0 - 28-AUG-98 *) (* 1.1 - 14-OCT-04 Observer *) // ********************************************************************** interface // ====================================================================== uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons, uPerson; type TFensterFrm = class(TForm) GroesseLbl : TLabel; GroesseEdt : TEdit; GewichtLbl : TLabel; GewichtEdt : TEdit; BMILbl : TLabel; BmiEdt : TEdit; NameEdt : TEdit; NameLbl : TLabel; SteuerPnl : TPanel; EndeBtn : TButton; updModelBtn : TButton; AbnehmBtn : TButton; View2GrpBox: TGroupBox; StaticText1 : TStaticText; StaticText2 : TStaticText; StaticText3 : TStaticText; StaticText4 : TStaticText; procedure FormShow(Sender: TObject); procedure updModelBtnClick(Sender: TObject); procedure AbnehmBtnClick(Sender: TObject); procedure EndeBtnClick(Sender: TObject); private Person : TPerson; // --- Model PERSON procedure MaskeAktualisieren (Sender:TObject); procedure DatenAktualisieren (Sender:TObject); public end; var FensterFrm: TFensterFrm; // --- GUI implementation {$R *.DFM} // ====================================================================== procedure TFensterFrm.MaskeAktualisieren; // ---------------------------------------------------------------------- begin StaticText1.Caption := Person.Name; StaticText2.Caption := floattostr(Person.Groesse); StaticText3.Caption := floattostr(Person.Gewicht); StaticText4.Caption := floattostr(Person.HatBmi); BmiEdt.Text := floattostr(person.HatBmi); end; procedure TFensterFrm.FormShow(Sender: TObject); // ---------------------------------------------------------------------- begin Person := TPerson.Create; Person.AddObserver(MaskeAktualisieren,self); end; procedure TFensterFrm.DatenAktualisieren (Sender:TObject); begin Person.Name := NameEdt.Text; Person.Groesse:= strtofloat(GroesseEdt.Text); Person.Gewicht:= strtofloat(GewichtEdt.Text); NameEdt.Text := Person.Name; end; procedure TFensterFrm.updModelBtnClick(Sender: TObject); // ---------------------------------------------------------------------- begin DatenAktualisieren(Person); MaskeAktualisieren(Person); end; procedure TFensterFrm.AbnehmBtnClick(Sender: TObject); // ---------------------------------------------------------------------- begin Person.Abnehmen; MaskeAktualisieren(Person); end; procedure TFensterFrm.EndeBtnClick(Sender: TObject); // ---------------------------------------------------------------------- begin Close; end; end. // ------ UNIT ------- |
© 04. Oktober 2008 Siegfried Spolwig |
|