Ihr habt mir nun schon so oft geholfen doch ich muss ein weiteres mal darum bitten
Folgendes ist das Thema:
Ich habe ine Ampel erstellt (siehe unten) und will nun dir Farben per timer aendern heisst also dass sich die farbe jeweils nach einer bestimmten Zeit wechselt
Nun kenne ich mich aber mit Timern ueberhaupt nicht aus :/ kann mir jemand vlt erklaeren wie Timer funktionieren und wie ich den hier anwende ?

MfG Moo
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
TAmpel = class(TShape)
public
farbe:integer; //1=rot 2=gelb 3=grün
constructor create(Besitzer:TComponent); //override;
procedure paint; override; //vorhandenes paint überschreiben
end;
var
Form1: TForm1;
Ampel: TAmpel;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Ampel:=TAmpel.Create(Form1);
Ampel.Parent:=Form1;
Ampel.farbe:=1;
Ampel.Left:=80;
Ampel.Top:=80;
Ampel.Width:=80;
Ampel.Height:=234;
Ampel.Brush.Color:=ClBlack;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Ampel:=TAmpel.Create(Form1);
Ampel.Parent:=Form1;
Ampel.farbe:=2;
Ampel.Left:=80;
Ampel.Top:=80;
Ampel.Width:=80;
Ampel.Height:=234;
Ampel.Brush.Color:=ClBlack;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Ampel:=TAmpel.Create(Form1);
Ampel.Parent:=Form1;
Ampel.farbe:=3;
Ampel.Left:=80;
Ampel.Top:=80;
Ampel.Width:=80;
Ampel.Height:=234;
Ampel.Brush.Color:=ClBlack;
end;
constructor TAmpel.Create(Besitzer:TComponent); //constructor besondere procedure die etwas erschafft
begin
inherited Create(Besitzer);
Parent:=TWinControl(Besitzer);
end;
procedure TAmpel.paint;
begin
inherited paint; //das Alte verwenden
Canvas.Brush.Color:=Brush.Color;
Canvas.Brush.Style:=BsSolid;
Canvas.Pen.Color:=ClBlack;
If farbe=1 Then
begin
Canvas.Brush.Color:=ClRed;
Canvas.Ellipse(5,5,75,75);
Canvas.Brush.Color:=ClGray;
Canvas.Ellipse(5,81,75,151);
Canvas.Ellipse(5,158,75,228);
end;
Canvas.Pen.Color:=ClBlack;
If farbe=2 Then
begin
Canvas.Brush.Color:=ClGray;
Canvas.Ellipse(5,5,75,75);
Canvas.Brush.Color:=ClYellow;
Canvas.Ellipse(5,81,75,151);
Canvas.Brush.Color:=Clgray;
Canvas.Ellipse(5,158,75,228);
end;
Canvas.Pen.Color:=ClBlack;
If farbe=3 Then
begin
Canvas.Brush.Color:=Clgray;
Canvas.Ellipse(5,5,75,75);
Canvas.Ellipse(5,81,75,151);
Canvas.Brush.Color:=ClGreen;
Canvas.Ellipse(5,158,75,228);
end;
end;
end.