Spiele in Lazarus objektorientiert programmieren/Entscheiden und Wiederholen: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
main>Karl Kirst
(Navigation eingefügt)
K (3 Versionen importiert)
 

Aktuelle Version vom 10. August 2019, 06:50 Uhr

Entscheiden

Damit ein Programm auf das Verhalten des Benutzers richtig reagieren kann, muss es ihm erlaubt sein, selbstständig Entscheidungen zu treffen.Nehmen wir an, wir wollen das Verhalten des Programms davon abhängig machen, wohin der Benutzer im Fenster klickt. Eine Methode zum Ereignis OnMouseDown eines Fensters könnte folgendermaßen aussehen.


procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if X>100     then Form1.Color:=clRed
               else Form1.Color:=clBlue;
end;

Wir haben also einen Programmteil (hinter „then“), der ausgeführt wird, wenn X>100 ist und einen anderen Programmteil (hinter „else“), der ansonsten ausgeführt wird.Achtung: Vor „else“ steht NIE ein Semikolon.

Wenn wir unter einer bestimmten Bedingung mehrere Dinge ausführen möchten, müssen wir diese zwischen ein „begin“ und ein „end“ einklammern.

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if X>100 then begin
                Form1.Color:=clRed;
                Form1.Caption:='Rechts im Feld';
                end
           else begin
                Form1.Color:=clBlue;
                Form1.Caption:='Links im Feld';
                end;
end;

Das Einrücken der Programmteile ist in Pascal (im Gegensatz etwa zur Programmiersprache Python) nur für den Programmierer interessant; im Grunde könnte man Pascal-Programme immer auch in eine einzige Zeile schreiben – nur: Wer will das nochmal lesen?

Wiederholen