habe jetzte ma alles des drin gelassen was eigentlich funzt und alles das rausgenommen worüber ich mir im unklaren bin (Die Flächen zum abfragen der Ampelphasen sind noch enthalten):
Ausgehend von diesem Code benötige ich folgende Proceduren:
Das überprüfen der zzt. Ampelphase, Wechsel der Ampelphase abhängig vom Timer, Autos, abhängig von der Ampelphase.
Hier der Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Borland.Vcl.StdCtrls, Borland.Vcl.ExtCtrls,
System.ComponentModel;
type
TForm1 = class(TForm)
Street1: TShape;
Street2: TShape;
Timer1: TTimer;
Button1: TButton;
Car1: TShape;
Ampel1: TShape;
Rot1: TShape;
Gelb1: TShape;
green1: TShape;
Car3: TShape;
Car2: TShape;
Car4: TShape;
Ampel3: TShape;
Ampel4: TShape;
Ampel2: TShape;
Rot3: TShape;
Rot2: TShape;
Rot4: TShape;
Gelb3: TShape;
Gelb2: TShape;
Gelb4: TShape;
green4: TShape;
green2: TShape;
green3: TShape;
check4: TShape;
check3: TShape;
check2: TShape;
check1: TShape;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.nfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Car1.Top := Car1.Top -2;
Car2.Top := Car2.top +2;
Car3.Left := Car3.Left +2;
Car4.Left := Car4.Left -2;
If Car1.Top = -24 then Car1.Top := 512;
If Car2.Top = 510 then Car2.Top := -48;
If Car3.Left = 712 then Car3.Left := -48;
If Car4.Left = -24 then Car4.Left := 712;
If Rot1.Brush.color = clred then Car1.Left := 0;
If green1.Brush.color = clred then Car1.Left := +2;
end;
end.