📄 testcontrol.~pas
字号:
unit TestControl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,CabinetControler, ComCtrls, Menus,IniFiles,MyThread,OneBoxThread;
type
TForm1 = class(TForm)
ComboBoxCabinet: TComboBox;
ComboBoxBox: TComboBox;
ComboBoxUnit: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ButtonOpenOneBox: TButton;
ButtonLightOneUnit: TButton;
ButtonLightOneBox: TButton;
ListView1: TListView;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Label4: TLabel;
ComboBoxCom: TComboBox;
ButtonQuery: TButton;
ButtonClear: TButton;
ButtonLightAllUnit: TButton;
ButtonStopLightAllUnit: TButton;
ButtonStopLightOneBox: TButton;
ButtonOpenAllBox: TButton;
procedure ButtonOpenOneBoxClick(Sender: TObject);
procedure ButtonLightOneUnitClick(Sender: TObject);
procedure ButtonLightOneBoxClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ButtonQueryClick(Sender: TObject);
procedure ButtonClearClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ButtonLightAllUnitClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure ButtonStopLightAllUnitClick(Sender: TObject);
procedure ButtonOpenAllBoxClick(Sender: TObject);
procedure ButtonStopLightOneBoxClick(Sender: TObject);
private
// FCabinetAddress:integer;
// FBoxAddress:integer;
// FUnitAddress:integer;
procedure QueryCabinet();
public
FUnitMaxNumber:integer;
FCabinetControler:TCabinetControler ;
FMyThread:LightAllBoxThread;
FLightOneBoxThread:LightOneBoxThread;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{
procedure TForm1.Button1Click(Sender: TObject);
var
tempControl:TCabinetControler;
tempState:DiskBoxOpenState;
i:integer;
tempItem:TListItem;
begin
//ShowMessage(查询);
self.ListView1.Clear;
tempControl:=TCabinetControler.Create(ComName.Text);
try
if (tempControl.GetIsDiskBoxOpen(StrToInt(Self.CabinetAddr1.Text),tempState)) then
begin
for i:=0 to 15 do
begin
tempItem:=Self.ListView1.Items.Add;
tempItem.Caption:=IntToStr(i+1);
if tempState[i]<>0 then
tempItem.SubItems.Add('开启')
else
tempItem.SubItems.Add('关闭');
end;
end
else
begin
ShowMessage('查询失败')
end;
finally
tempControl.Destroy;
end;
end;
}
{
procedure TForm1.Button2Click(Sender: TObject);
var
tempControl:TCabinetControler;
begin
tempControl:=TCabinetControler.Create(ComName.Text);
try
if not (tempControl.LighterStoreUnit(StrToInt(CabinetAddr2.Text),
StrToInt(BoxIndex.Text),StrToInt(UnitIndex.Text))) then
begin
ShowMessage('点亮失败');
end;
finally
tempControl.Destroy;
end;
end;
}
{
procedure TForm1.Button4Click(Sender: TObject);
var
tempControl:TCabinetControler;
begin
tempControl:=TCabinetControler.Create(self.ComName.Text);
try
if not (tempControl.OpenDiskBox(StrToInt(self.BoxIndex2.Text),
StrtoInt(Self.CabinetAddr3.Text))) then
begin
ShowMessage('打开盒子失败');
end;
finally
tempControl.Destroy;
end;
end;
}
//开启抽屉
procedure TForm1.ButtonOpenOneBoxClick(Sender: TObject);
var
tempControl:TCabinetControler;
begin
if ( (self.ComboBoxCabinet.Text='') or (self.ComboBoxBox.Text='') or (self.ComboBoxCom.Text='')) then
begin
ShowMessage('未选择抽屉、柜子、串口');
exit;
end;
// tempControl:=TCabinetControler.Create(self.ComboBoxCom.Text);
// try
if not (Self.FCabinetControler.OpenDiskBox(self.ComboBoxBox.ItemIndex,
self.ComboBoxCabinet.ItemIndex)) then
begin
ShowMessage('打开抽屉失败');
end;
// finally
// tempControl.Destroy;
// end;
end;
//点亮
procedure TForm1.ButtonLightOneUnitClick(Sender: TObject);
var
tempControl:TCabinetControler;
begin
if ((self.ComboBoxCom.Text='') or (self.ComboBoxCabinet.Text='') or (Self.ComboBoxBox.Text='') or (Self.ComboBoxUnit.Text='')) then
begin
ShowMessage('未选择串口,柜子,抽屉,单元');
exit;
end;
if not (Self.FCabinetControler.LighterStoreUnit(Self.ComboBoxCabinet.ItemIndex,
Self.ComboBoxBox.ItemIndex,Self.ComboBoxUnit.ItemIndex)) then
begin
ShowMessage('电亮失败');
end;
{
tempControl:=TCabinetControler.Create(self.ComboBoxCom.Text);
try
if not (tempControl.LighterStoreUnit(self.ComboBoxCabinet.ItemIndex,
self.ComboBoxBox.ItemIndex,Self.ComboBoxUnit.ItemIndex)) then
begin
ShowMessage('点亮失败');
end;
finally
tempControl.Destroy;
end;
}
end;
//点亮所有
procedure TForm1.ButtonLightOneBoxClick(Sender: TObject);
var
i:integer;
begin
if ((Self.ComboBoxCabinet.Text='') or (Self.ComboBoxBox.Text='')) then
begin
ShowMessage('未选择柜子、抽屉');
exit;
end;
if (Self.FLightOneBoxThread<>nil) then
begin
Self.FLightOneBoxThread.Terminate;
Self.FLightOneBoxThread.WaitFor;
Self.FLightOneBoxThread.Destroy;
Self.FLightOneBoxThread:=nil;
// Self.FLightOneBoxThread.Free;
end;
if (Self.FLightOneBoxThread=nil) then
begin
Self.FLightOneBoxThread:=LightOneBoxThread.Create(False);
if (Self.FLightOneBoxThread<>nil) then
begin
Self.ButtonQuery.Enabled:=False;
Self.ButtonOpenOneBox.Enabled:=False;
Self.ButtonLightOneUnit.Enabled:=False;
Self.ButtonLightOneBox.Enabled:=False;
Self.ButtonQuery.Enabled:=False;
Self.ButtonLightAllUnit.Enabled:=False;
Self.ButtonStopLightAllUnit.Enabled:=False;
Self.ButtonStopLightOneBox.Enabled:=True;
Self.ButtonOpenAllBox.Enabled:=False;
end
else
begin
ShowMessage('点亮所有单元失败');
Self.FLightOneBoxThread.Terminate;
Self.FLightOneBoxThread.Destroy;
Self.FLightOneBoxThread:=nil;
end;
end;
{ if (Self.FLightOneBoxThread=nil) then
begin
Self.FLightOneBoxThread:=LightOneBoxThread.Create(False);
end;
if ((self.ComboBoxCom.Text='') or (self.ComboBoxCabinet.Text='') or (self.ComboBoxBox.Text='')) then
begin
ShowMessage('未选择串口、柜子、抽屉');
exit;
end;
// tempControl:=TCabinetControler.Create(self.ComboBoxCom.Text);
// try
for i:=0 to self.FUnitMaxNumber-1 do
begin
//遍历是发出2次指令点亮,防止有的指令不能收到。
if not (self.FCabinetControler.LighterStoreUnit(self.ComboBoxCabinet.ItemIndex,
self.ComboBoxBox.ItemIndex,i)) then
// if not (tempControl.LighterStoreUnit(self.ComboBoxCabinet.ItemIndex,
// self.ComboBoxBox.ItemIndex,i)) then
begin
ShowMessage('点亮失败');
exit;
end;
Sleep(1000);
end;
ShowMessage('所有单元指示灯点亮成功');
// finally
// tempControl.Destroy;
// end;
}
end;
//查询
procedure TForm1.N1Click(Sender: TObject);
begin
Self.QueryCabinet();
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -