Spiele in Lazarus objektorientiert programmieren/Entscheiden und Wiederholen
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?