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

Aus ZUM-Unterrichten
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…“)
 
main>Peterdauscher
Zeile 4: Zeile 4:




{| style="border-spacing:0;margin:auto;width:16.007cm;"
<source lang=pascal>
|- style="border:0.05pt solid #000000;padding:0.097cm;"
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|| 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>
{| style="border-spacing:0;margin:auto;width:16.007cm;"
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|- style="border:0.05pt solid #000000;padding:0.097cm;"
|| 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 ==
==  Wiederholen ==

Version vom 14. Dezember 2018, 13:47 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