is-Logo Zahlenraten -  V. 09
GUI 
  Aufgabe und Hinweise

S. Spolwig

[Home | Unterrichtssequenzen]
[Startseite]

Die Klasse TFensterFrm implementieren

Die Version V. 09 besteht nur aus FensterFrm und ist eine aktionsfähige fertige Bedienungsoberfläche, die zwar noch nicht mit den echten Daten arbeitet, aber bereits die vorgesehenen Aktionen demonstriert. Eine Entwicklung, die dem Kunden das bestellte Produkt in dieser Weise präsentiert, nennt man Rapid Prototyping.

Für die Implementation sind folgende Schritte erforderlich:

Schritt 1 : Neues Projekt anlegen

- Legen Sie einen Projektordner an mit Name: Zahlenraten
- Speichern Sie Unit1.pas unter : uFenster.pas
- Speichern Sie Project1.dpr unter : ZRaten.dpr

Schritt 2 : Benutzungsoberfläche gestalten

Konstruieren Sie die Benutzungsoberfläche und halten Sie bitte die grobe Einteilung ein.

Arbeitstechnik: Sowie Sie eine GUI-Komponenten auf den Bildschirm gezogen haben, gehen Sie in den Objektinspektor und tragen ein, z B.

  • bei Name - den richtigen Bezeichner, z.B. EndeBtn

  • bei Caption - leer machen oder Aufschrift, z.B. "Game over"

Hinweise für die richtige Wahl gut lesbarer Bezeichner finden Sie in Delphi-Sprachelemente oder Sie können die beigefügte Namensliste benutzen.

Liste der Bezeichner

FensterFrm (für das Fensterformular)

EingabeLbl         (Label)
EingabeEdt        (Editfeld)
ZaehlerGrpBox    (Groupbox)
ZaehlerLbl
HilfeBtn
EndeBtn
MeldePnl

Kontrollieren Sie, ob alle GUI-Komponenten einen richtigen Namen haben.
Das ist für die nächste Aktion wichtig, weil mit diesen Namen automatisch die entsprechenden Methoden erzeugt werden.

Schritt 3 : Ereignisprozeduren erzeugen

  1. Erzeugen Sie durch Doppelklick auf  die Buttons die entsprechenden (leeren) Prozeduren!
  2. Erzeugen Sie durch Doppelklick auf das Fensterformular die Prozedur FormCreate (...)

Schritt 4 : Ergänzungen implementieren

Alle folgende Codierungen müssen von Hand geschrieben werden!
(Schreiben Sie bitte erst alles fertig und testen Sie erst danach! Zur Kontrolle steht unten der gesamte Quelltext.)

  1. Ergänzen Sie die Prozedur EndeBtnClick mit der Zeile : FensterFrm.Close

  2. Eine Messagebox anzeigen
    Ergänzen Sie die Prozedur HilfeBtnClick mit der Zeile:
     
    showmessage('Rate mit möglichst wenigen Versuchen eine Geheimzahl zwischen 0 und 100! - Tip  eingeben und Enter drücken!');

     

  3. In der Fensterleiste oben soll der Programmname, die Versionsnummer und der Name des Programmierers  stehen.

  4. Die Methode Init
    Jede Unit bekommt eine private Methode Init, in der die Startwerte für die Attribute des Objekts festgelegt werden. Fügen Sie ein als Methoden-Deklaration unterhalb
    privat
    { Private-Deklarationen }
    procedure Init;
    und im Implementationsteil an letzter Stelle die codierte Methode
     

    procedure TFensterFrm.Init;
    // -----------------------------------------------------------------------
    // Aufgabe: Spiel initialisieren. Eingabefeld leeren, Start-Meldung ausgeben
    // -----------------------------------------------------------------------
    begin
      EingabeEdt.Text := '';
      MeldePnl.Caption := 'Neues Spiel - neues Glück';
    end;

  1. Schreiben Sie in die (noch leere) Prozedur TFensterFrm.FormCreate den Prozeduraufruf Init; hinein. Dann wird bei Programmstart alles ausgeführt, was bei Init passieren soll.

 

 

 

 

 

 

 

Hier nun der gesamte Quelltext zur Kontrolle - Ergänzungen farbig.

unit uFensterFrm;
// ***********************************************************************
// K L A S S E : TFensterFrm
// -----------------------------------------------------------------------
// Version     : 0.9
// Autor       : S. Spolwig, OSZ-Handel I,  10997 Berlin
// Aufgabe     : GUI fuer das Ratespiel Zahlenraten
// Compiler    : DELPHI 5
// Aenderung   :
// ***********************************************************************
interface
// =======================================================================
uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   StdCtrls, ExtCtrls;
type
  TFensterFrm = class(TForm)
    EingabeLbl    : TLabel;
    EingabeEdt    : TEdit;
    EndeBtn       : TButton;
    MeldePnl      : TPanel;
    HilfeBtn      : TButton;
    ZaehlerGrpBox : TGroupBox;
    ZaehlerLbl    : TLabel;
    procedure FormCreate(Sender: TObject);
    procedure EndeBtnClick(Sender: TObject);
    procedure HilfeBtnClick(Sender: TObject);
  private
   { Private-Deklarationen }
   procedure Init;
  public
    { Public-Deklarationen }
  end;
var
 FensterFrm : TFensterFrm;
implementation
// =======================================================================
{$R *.DFM}
procedure TFensterFrm.FormCreate(Sender: TObject);
// -----------------------------------------------------------------------
begin
  Init;
end;
procedure TFensterFrm.EndeBtnClick(Sender: TObject);
// -----------------------------------------------------------------------
begin
  Close
end;
procedure TFensterFrm.HilfeBtnClick(Sender: TObject);
// -----------------------------------------------------------------------
begin
  showmessage('Eine Zahl von 1..100 mit möglichst wenigen Versuchen raten.'
                + #13 + 'Tip im Editfeld eingeben!');
end;
// ================= hier beginnen die privaten Methoden =================
procedure TFensterFrm.Init;
// -----------------------------------------------------------------------
begin
  EingabeEdt.Text := '';
  ZaehlerLbl.Caption := inttostr(0);
  MeldePnl.Caption := 'Neues Spiel - neues Glück';
end;
END. // --------- Unit -------

 

 
Hinweise:

Meldungen ausgeben:

Eine Meldung wird angezeigt, in dem man dem MeldePnl einen String (in Hochkommata) übergibt:

MeldePnl.Caption := ´ ... das ist die Meldung !´

Dort, wo Sie eine Meldung brauchen, schreiben Sie in die Ereignisbehandlungsprozedur diesen Aufruf hinein.

Beispiel:

Procedure InfoBtnClick (Sender : TObject);
Begin
   ....
   MeldePnl.Caption := ´.. noch nicht fertig.´
End;


©   05. Oktober 2008    Siegfried Spolwig

page_top