📄 mainfrm.pas
字号:
unit MainFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, uLight, uPort, uCar, uCarFactory, Menus, uGlobalObj,
StdCtrls, Contnrs, uLightMgr, uThreadComList;
type
TForm1 = class(TForm)
Image1: TImage;
Light1: TLight;
Light2: TLight;
Light3: TLight;
Light4: TLight;
Light5: TLight;
Light6: TLight;
Light7: TLight;
Light8: TLight;
Port1: TPort;
Port2: TPort;
Port3: TPort;
Port4: TPort;
Port5: TPort;
Port6: TPort;
Port7: TPort;
Port8: TPort;
Button1: TButton;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FCarFactory: TCarFactory;
FCarMgr: TCarMgr;
FLightMgr: TLightMgr;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
var
n, i: integer;
LCom: TComponent;
begin
n := self.ComponentCount - 1;
for i := 0 to n do
begin
LCom := self.Components[i];
if LCom is TLight then
GLightList.Add(LCom as TLight)
else if LCom is TPort then
GPortList.Add(LCom as TPort);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FCarFactory := TCarFactory.Create;
FCarMgr := TCarMgr.Create;
if not Assigned(FLightMgr) then
FLightMgr := TLightMgr.Create;
FCarFactory.Start;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if Assigned(FCarMgr) then
FreeAndNil(FCarMgr);
if Assigned(FCarFactory) then
FreeAndNil(FCarFactory);
FreeAndNil(GCarList);
FreeAndNil(GLightList);
FreeAndNil(GPortList);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
GCarList := TThreadComList.Create;
GLightList := TComponentList.Create;
GPortList := TComponentList.Create;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -