O.k! Habe das soweit verstanden, werde mich auch mit der empfohlenen "Lektüre" beschäftigen.
Nun, da das Programm läuft, ist mir jedoch aufgefallen, dass ich einen grundlegenden Denkfehler gemacht haben muss.
Ich erkläre schnell die Aufgabenstellung:
Wir sollten mit Shapes 3 Kreise machen, die als Ampel fungieren. Daneben >EIN< Button, der das Umschalten der Ampel steuert. Also wenn man das erste Mal klickt soll sie Rot werden, beim Zweiten mal dann Rot + Gelb, dann Grün, schließlich Gelb und zuletzt wieder Rot. Pro Klick soll die Änderung auftreten.
Mein Gedankengang: Ich lasse Pro Klick die Variable VSchalten um 1 Steigen, bei 0 wird Rot angezeigt, bei 1 Rot+Gelb, bei 2 dann Grün, bei 3 soll nur Gelb angezeigt werden, und schliesslich soll die Variable wieder auf 0 gesetzt werden, sie würde dann wieder Rot erscheinen und alles würde von vorne beginnen. Hier mein Code:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
Panel1: TPanel;
SRot: TShape;
SGruen: TShape;
SGelb: TShape;
BSchalten: TButton;
procedure BSchaltenClick(Sender: TObject);
private
VSchalten: integer;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BSchaltenClick(Sender: TObject);
begin
VSchalten:= 0;
inc(VSchalten);
if VSchalten= 0
then
begin
SRot.Brush.Color := clred;
SGelb.Brush.Color := clblack;
SGruen.Brush.Color := clblack;
end
else if VSchalten= 1
then
begin
SRot.Brush.Color := clred;
SGelb.Brush.Color := clyellow;
SGruen.Brush.Color := clblack;
end
else if VSchalten= 2
then
begin
SRot.Brush.Color:= clblack;
SGelb.Brush.Color:= clblack;
SGruen.Brush.Color:= clgreen;
end
else if VSchalten= 3
then
begin
SRot.Brush.Color:= clblack;
SGelb.Brush.Color:= clyellow;
SGruen.Brush.Color:= clblack;
end
else if VSchalten= 4
then
VSchalten := 0;
end;
end.
Jedoch zeigt er mir beim ersten klick Rot, dann blitzschnell RotGelb an, und bei weiteren Klicks geschieht garnichtsmehr... Vielleicht ist es ein bisschen sehr viel verlangt, aber kann mir da jemand weiterhelfeb?
Denke nie gedacht zu haben, denn das Denken der Gedanken ist gedankenloses Denken!