⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ulight.pas

📁 智能交通系统演示delphi源码,适合初学者看的例子
💻 PAS
字号:
unit uLight;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls, Graphics;

type
  TLightState=(lsRed, lsGreen, lsLeft, lsRight);
  TLight = class(TImage)
  private
    { Private declarations }
    FState: TLightState;
    FPicGreen: TPicture;
    FPicRed: TPicture;
    FPicLeft: TPicture;
    FPicRight: TPicture;
    procedure FSetPicGreen(APic: TPicture);
    procedure FSetPicRed(APic: TPicture);
    procedure FSetPicLeft(APic: TPicture);
    procedure FSetPicRight(APic: TPicture);
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent);override;
    destructor Destroy;override;
    procedure GreenOn;
    procedure RedOn;
    procedure LeftOn;
    procedure RightOn;
  published
    { Published declarations }
    property State: TLightState read FState;
    property PicGreen: TPicture read FPicGreen write FSetPicGreen;
    property PicRed: TPicture read FPicRed write FSetPicRed;
    property PicLeft: TPicture read FPicLeft write FSetPicLeft;
    property PicRight: TPicture read FPicRight write FSetPicRight;
  end;

procedure Register;

implementation

constructor TLight.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FPicGreen := TPicture.Create;
  FPicRed := TPicture.Create;
  FPicLeft := TPicture.Create;
  FPicRight := TPicture.Create;
end;

destructor TLight.Destroy;
begin
  FreeAndNil(FPicGreen);
  FreeAndNil(FPicRed);
  FreeAndNil(FPicLeft);
  FreeAndNil(FPicRight);
  inherited;
end;

procedure TLight.GreenOn;
begin
  if Assigned(FPicGreen) then
    Picture := FPicGreen;
  Invalidate;
  FState := lsGreen;
end;

procedure TLight.RedOn;
begin
  if Assigned(FPicRed) then
    Picture := FPicRed;
  Invalidate;
  FState := lsRed;
end;

procedure TLight.LeftOn;
begin
  if Assigned(FPicLeft) then
    Picture := FPicLeft;
  Invalidate;
  FState := lsLeft;
end;

procedure TLight.RightOn;
begin
  if Assigned(FPicRight) then
    Picture := FPicRight;
  Invalidate;
  FState := lsRight;
end;

procedure TLight.FSetPicGreen(APic: TPicture);
begin
  FPicGreen.Assign(APic);
  Invalidate;
end;

procedure TLight.FSetPicRed(APic: TPicture);
begin
  FPicRed.Assign(APic);
  Invalidate;
end;

procedure TLight.FSetPicLeft(APic: TPicture);
begin
  FPicLeft.Assign(APic);
  Invalidate;
end;

procedure TLight.FSetPicRight(APic: TPicture);
begin
  FPicRight.Assign(APic);
  Invalidate;
end;



procedure Register;
begin
  RegisterComponents('Transport', [TLight]);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -