is-Logo Objektorientierte Programmierung (OOP)
M-V-C Implementierung - Polling

S. Spolwig


[Home | Programmiersprachen | Delphi]
 

unit uFenster;
// **********************************************************************
(* K L A S S E :  FENSTER                                               *)
(* -------------------------------------------------------------------- *)
(* Version     :  0.9			                                *)
(* Autor       :  (c) Siegfried Spolwig, OSZ Handel, 10997              *)
(*                                                                      *)
(* Aufgabe     : Veranschaulichung des Datenflusses bei M-V-C           *)
(*               manuelles Polling                                      *)
(* Compiler    : DELPHI 7.0                                             *)
(* Aenderung   : V. 1.0 - 28-AUG-98                                     *)
// **********************************************************************

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;
    updViewBtn: TButton;

    procedure updModelBtnClick (Sender: TObject);
    procedure FormCreate (Sender: TObject);
    procedure EndeBtnClick(Sender: TObject);
    procedure AbnehmBtnClick(Sender: TObject);
    procedure updViewBtnClick(Sender: TObject);

   private
    Person : TPerson; 			// ---  Model PERSON
    procedure Init;
    procedure DatenAktualisieren; 	// -- hier der Datentransport
    procedure MaskeAktualisieren;
   public
  end;

var
  FensterFrm: TFensterFrm;  		// --- GUI

implementation
{$R *.DFM}
// ======================================================================

procedure TFensterFrm.FormCreate(Sender: TObject);
// ----------------------------------------------------------------------
begin
  Person := TPerson.Create;
  FensterFrm.Init;
end;

procedure TFensterFrm.Init;
// ----------------------------------------------------------------------
begin
  NameEdt.Text 	  := '';
  GroesseEdt.Text := '';
  GewichtEdt.Text := '';
  BmiEdt.Text     := '';
end;
	                        
procedure TFensterFrm.DatenAktualisieren;
// ----------------------------------------------------------------------
begin
  Person.SetName (NameEdt.Text);
  Person.SetGroesse (StrToFloat (GroesseEdt.Text));
  Person.SetGewicht (StrToFloat (GewichtEdt.Text));
end;

procedure TFensterFrm.updModelBtnClick(Sender: TObject);
// ----------------------------------------------------------------------
begin
  DatenAktualisieren;
  Init;
end;

procedure TFensterFrm.MaskeAktualisieren;
// ----------------------------------------------------------------------
begin
  NameEdt.Text 		:= Person.GetName;
  GroesseEdt.Text := FloatToStr (Person.GetGroesse);
  GewichtEdt.Text := FloatToStr (Person.GetGewicht);
  BmiEdt.Text     := FloatToStr (Person.HatBMI);
end;

procedure TFensterFrm.updViewBtnClick(Sender: TObject);
// ----------------------------------------------------------------------
begin
  MaskeAktualisieren
end;

procedure TFensterFrm.AbnehmBtnClick(Sender: TObject);
// ----------------------------------------------------------------------
begin
  Person.Abnehmen;
end;

procedure TFensterFrm.EndeBtnClick(Sender: TObject);
// ----------------------------------------------------------------------
begin
  Close;
end;

end. // ------ UNIT -------

 

©    04. Oktober 2008    Siegfried Spolwig

Seitenanfang