|
|
Zeile 1: |
Zeile 1: |
− | == Entscheiden ==
| + | {{Seite umgezogen}} |
− | | + | |
− | 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.
| + | |
− | | + | |
− | | + | |
− | <source lang=pascal>
| + | |
− | 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;
| + | |
− | </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.
| + | |
− | | + | |
− | 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
| + | |
− | 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;
| + | |
− | </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?
| + | |
− | | + | |
− | == Wiederholen ==
| + | |
− | | + | |
− | | + | |
− | | + | |
− | {{Spiele in Lazarus objektorientiert programmieren}} | + | |
Aktuelle Version vom 10. August 2019, 08:01 Uhr