?? 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
//遍歷是發(fā)出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 + -