Einzelnen Beitrag anzeigen

pyromane

Registriert seit: 5. Sep 2007
15 Beiträge
 
#1

TForm1.Canvas nicht in procedure zu verwenden?

  Alt 9. Apr 2008, 17:55
Hoi,
ich schreib gerade an einer Ampelschaltung für Delphi.

Zuerst hab ich nur eine Ampel gemalt, die man a) Manuell oder b) Automatisch steuern lassen kann
-> ich hatte keine Lust die Zeichenbefehle immer reinzukopieren ->
zack das
Delphi-Quellcode:
Canvas.Rectangle(40,40,160,410);
Canvas.Ellipse(50,50,150,150);
Canvas.Ellipse(50,175,150,275);
Canvas.Ellipse(50,300,150,400);
(is jetzt nur die Ampel - Aus
es gibt noch Rot,Gelb,Grün -> ab in eine Prozedur
Delphi-Quellcode:
procedure Ampelschalten(Zustand: Integer);{0=aus, 1=grün, 2=gelb, 3=rot}
begin

If Zustand=0 then
begin
TForm3.Canvas.Brush.Color:=clBlack;
TForm3.Canvas.Ellipse(50,50,150,150);
TForm3.Canvas.Ellipse(50,175,150,275);
TForm3.Canvas.Ellipse(50,300,150,400);
end;

If Zustand=1 then
begin
TForm3.Canvas.Brush.Color:=clBlack;
TForm3.Canvas.Ellipse(50,50,150,150);
TForm3.Canvas.Ellipse(50,175,150,275);
TForm3.Canvas.Brush.Color:=clGreen;
TForm3.Canvas.Ellipse(50,300,150,400);
end;

If Zustand=2 then
begin
TForm3.Canvas.Brush.Color:=clBlack;
TForm3.Canvas.Ellipse(50,50,150,150);
TForm3.Canvas.Ellipse(50,300,150,400);
TForm3.Canvas.Brush.Color:=clYellow;
TForm3.Canvas.Ellipse(50,175,150,275);
end;

If Zustand=3 then
begin
TForm3.Canvas.Brush.Color:=clBlack;
TForm3.Canvas.Ellipse(50,175,150,275);
TForm3.Canvas.Ellipse(50,300,150,400);
TForm3.Canvas.Brush.Color:=clRed;
TForm3.Canvas.Ellipse(50,50,150,150);
end;
--> Jetzt sagt er mir, dass ich Canvas an dieser Stelle net benutzen darf ????
Warum das nichT?
Ich habe doch extra TFORM3 davor geschrieben, da ampelschaltung ja kein "Untermieter" von TForm ist.

Das Projekt hängt im Anhang

Vielen Dank im Vorraus
mfg Pyromane
Angehängte Dateien
Dateityp: zip ampelschaltung_108.zip (10,4 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat