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

S. Spolwig


[Home | Programmiersprachen | Delphi]
 

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

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;
    updModelBtn: TButton;
    EndeBtn    : TButton;
    AbnehmBtn  : TButton;

    procedure updModelBtnClick (Sender: TObject);
    procedure FormCreate (Sender: TObject);
    procedure EndeBtnClick(Sender: TObject);
    procedure AbnehmBtnClick(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
  FensterFrm.Init;
  Person := TPerson.Create;
  Person.OnChanged := MaskeAktualisieren; // Methodenzeiger mit Methode verknüpfen
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); // Laufzeitfehler
//  GewichtEdt.Text := FloatToStr (Person.GetGewicht);
  BmiEdt.Text       := FloatToStr (Person.HatBMI);
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