Spiele in Lazarus objektorientiert programmieren/Entscheiden und Wiederholen: Unterschied zwischen den Versionen
main>Peterdauscher (Die Seite wurde neu angelegt: „== Entscheiden == Damit ein Programm auf das Verhalten des Benutzers richtig reagieren kann, muss es ihm erlaubt sein, selbstständig Entscheidungen zu treff…“) |
K (3 Versionen importiert) |
||
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
<source lang=pascal> | |||
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); | |||
begin | begin | ||
if X>100 then Form1.Color:=clRed | if X>100 then Form1.Color:=clRed | ||
else Form1.Color:=clBlue; | else Form1.Color:=clBlue; | ||
end; | end; | ||
</source> | |||
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. | 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. | Wenn wir unter einer bestimmten Bedingung mehrere Dinge ausführen möchten, müssen wir diese zwischen ein „begin“ und ein „end“ einklammern. | ||
<source lang=pascal> | |||
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); | |||
begin | begin | ||
if X>100 then begin | if X>100 then begin | ||
Zeile 31: | Zeile 27: | ||
end; | end; | ||
end; | end; | ||
</source> | |||
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? | 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 == | |||
{{Spiele in Lazarus objektorientiert programmieren}} |
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?