📄 lightcontrolu.pas
字号:
unit LightControlU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls,
TrafficLightU;
type
TfrmTrafficLight = class(TForm)
tmrTrafficLight: TTimer;
lblTrafficLight: TLabel;
shpRed: TShape;
shpYellow: TShape;
shpGreen: TShape;
procedure tmrTrafficLightTimer(Sender: TObject);
procedure FormShow(Sender: TObject);
private
MyTrafficLight: TTrafficLight;
FPeriod: integer;
FState: string;
FStopLight: TColor;
FGoLight: TColor;
FCautionLight: TColor;
procedure UpDateDisplay;
public
property Period: integer read FPeriod write FPeriod;
property State: string read FState write FState;
property StopLight: TColor read FStopLight write FStopLight;
property CautionLight: TColor read FCautionLight write FCautionLight;
property GoLight: TColor read FGoLight write FGoLight;
end;
var
frmTrafficLight: TfrmTrafficLight;
implementation
{$R *.dfm}
procedure TfrmTrafficLight.tmrTrafficLightTimer(Sender: TObject);
begin
MyTrafficLight.NextState(Self);
UpDateDisplay;
end; // end procedure TfrmTrafficLight.tmrTrafficLightTimer
procedure TfrmTrafficLight.FormShow(Sender: TObject);
begin
MyTrafficLight := TTrafficLight.Create;
State := 'Caution';
MyTrafficLight.NextState(Self);
UpDateDisplay;
tmrTrafficLight.Enabled := True;
end; // end procedure TfrmTrafficLight.FormShow
procedure TfrmTrafficLight.UpDateDisplay;
begin
tmrTrafficLight.Interval := Period;
lblTrafficLight.Caption := State;
shpRed.Brush.Color := StopLight;
shpYellow.Brush.Color := CautionLight;
shpGreen.Brush.Color := GoLight;
end; // end procedure TfrmTrafficLight.UpDateDisplay
end. // end unit LightControlU
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -