is-Logo Karel D. Robot
Manuelle Steuerung

S. Spolwig
1.2

[ Karel ]
Startseite

Ziele:
Objekt erzeugen und aus der GUI (Graphical User Interface) mit Botschaften steuern

Informationen
zur Vertiefung


Wenn Sie das Projekt geladen und das Programm gestartet haben, sehen Sie das Trainingscamp, eine schachbrettartige Welt, darauf ein paar Bäume und die Handsteuerung 'Vor' für den Roboter. Das wichtigste Objekt, der Roboter RD1, fehlt noch, weil er noch nicht erzeugt wurde. Das geschieht so:
 

1. Aufgabe:
    Ein Objekt erzeugen und initialisieren

a) Beenden Sie das laufende Programm und
    schalten Sie zur Unit uControl mit:   Menü-Ansicht-Umschalten Formular/Unit.
    Sie sehen den Quelltext der Unit, die die Steuerbefehle an die Objekte übermittelt.

b) Roboter RD1 deklarieren im Interface-Teil unter

   var
    ControlFrm : TControlFrm;
    RD1 : TRobot;          // neuen Roboter deklarieren

c) Roboter RD1 erzeugen. Ergänzen Sie die fehlenden Zeilen in der

procedure TControlFrm.ItemsErzeugen;
  // ----------------------------------------------------------------------
  // Zweck : Erzeugen und initialisieren aller (neuen) Items in einer Welt
  // vorher : -
  // nachher: Item ist erzeugt
  // ----------------------------------------------------------------------

  begin
    RD1 := TRobot.Create; // erzeugt RD1
    RD1.SetPos('C',1);   
// meldet RD1 mit Anfangsposition in der Welt an
    Welt.AllesZeigen; // in der letzten Zeile, auch wenn nichts gesetzt ist
  end;

 

2. Aufgabe:
    Einen Button zur Hand-Steuerung aktivieren

Aus der GUI werden dem Roboter die Anweisungen erteilt ("Botschaften übermittelt"), die er ausführen soll. Nimmt man dazu Buttons, hat man praktisch so etwas wie eine Fernbedienung. Im Programm ist bereits der erste Button (VorBtn) implementiert und vorbereitet.

procedure TControlFrm.VorBtnClick(Sender: TObject);
  // ------------------------------------------------
  begin
    inherited;  // ist vom System eingefügt
    RD1.Vor;    // Aufruf der Roboter-Methode 'Vor'
  end;

 

Fügen Sie in der 2. Zeile RD1.Vor; ein. Der Button sendet die Botschaft 'Vor' an RD1, der dann weiß, daß er einen Schritt weitergehen soll.

Starten Sie das Programm und lassen Sie RD1 marschieren!
 

Regel:  Objekte können erst dann angesprochen werden,
                              wenn sie schon erzeugt sind!

(Wenn Sie die Fehlermeldung erhalten:
"...  ist eine Exzeption der Klasse EAccessViolation aufgetreten", dann haben Sie sicher vergessen, das Objekt zu erzeugen. )

 

 

Objekte

 

 

 

 

 

 

 

 

 

 

 

 

 

Methoden

 

 

 

 

Botschaften

 

©  05. Oktober 2008    Siegfried Spolwig

page_top next page