📄 u_mainform.pas
字号:
unit u_MainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxNavBarCollns, dxNavBarBase, ExtCtrls, dxNavBar, ImgList,
StdCtrls, ActnList, ComCtrls, Menus, CoolTrayIcon,shareunit,u_MainThread,
cxClasses;
type
TMainForm = class(TForm)
dxNavBar1: TdxNavBar;
dxNavBar1Group1: TdxNavBarGroup;
dxNavBar1Group2: TdxNavBarGroup;
dxNavBar1Item1: TdxNavBarItem;
dxNavBar1Item2: TdxNavBarItem;
ImageList: TImageList;
dxNavBar1Group1Control: TdxNavBarGroupControl;
dxNavBar1Group2Control: TdxNavBarGroupControl;
Panel1: TPanel;
Panel2: TPanel;
GroupBox1: TGroupBox;
dxNavBar1Item3: TdxNavBarItem;
dxNavBar1Item4: TdxNavBarItem;
ActionList1: TActionList;
Action1: TAction;
Action2: TAction;
Action3: TAction;
Action4: TAction;
MainPn: TPanel;
DevList: TListView;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
Action5: TAction;
Action6: TAction;
CoolTrayIcon1: TCoolTrayIcon;
Timer1: TTimer;
dxNavBar1Item5: TdxNavBarItem;
Action7: TAction;
ImageList1: TImageList;
N10: TMenuItem;
procedure Action1Execute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DevListClick(Sender: TObject);
procedure DevListMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Action5Execute(Sender: TObject);
procedure Action6Execute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure Action3Execute(Sender: TObject);
procedure Action4Execute(Sender: TObject);
procedure Action7Execute(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
aDevItem: integer;
aCurForm: String;
aDevInfo: UDevID;
CurForm: TForm;
{ Private declarations }
procedure SetForm(aFormID: integer);
public
{ Public declarations }
procedure GetDevList;
end;
var
MainForm: TMainForm;
implementation
uses u_Emp,u_dm,setsystem,u_ChildLoadData,u_matchineInfo,u_AddDevice;
{$R *.dfm}
procedure TMainForm.GetDevList;
var aHigh: integer;
begin
setLength(aDevInfo,0);
DevList.Clear;
with DM.temp do
begin
if active then close;
sql.Text := 'select DeviceID,DevName,IP,Port from Device';
Open;
while not eof do
begin
SetLength(aDevInfo,Length(aDevInfo)+1);
aHigh := High(aDevInfo);
aDevInfo[aHigh] := FieldByName('DeviceID').AsInteger;
with DevList.Items.Add do
begin
Caption := FieldByName('DeviceID').AsString;
Subitems.Add(FieldByName('DevName').AsString);
Subitems.Add('空闲');
Subitems.Add(FieldByName('IP').AsString);
Subitems.Add(FieldByName('Port').AsString);
ImageIndex:=3;
end;
next;
end;
end;
end;
procedure TMainForm.SetForm(aFormID: integer);
var i:integer;
begin
for i:=0 to DevList.Items.Count-1 do
DevList.Items.Item[i].Checked := false;
if not MainForm.Showing then
MainForm.Show;
if CurForm<>nil then
CurForm.Close;
case aFormID of
0: begin
panel2.Visible := true;
if not assigned(frm_ChildLoadData) then
frm_ChildLoadData := Tfrm_ChildLoadData.Create(application);
frm_ChildLoadData.Parent := Mainpn;
//frm_ChildLoadData.Left := Trunc((Mainpn.Width-frm_ChildLoadData.Width)/2);
//frm_ChildLoadData.Top := Trunc((Mainpn.Height-frm_ChildLoadData.Height)/2);
frm_ChildLoadData.Show;
aCurForm := 'frm_ChildLoadData';
CurForm := (frm_ChildLoadData as TForm);
end;
1: begin
panel2.Visible := true;
if not assigned(Frm_Emp) then
Frm_Emp := TFrm_Emp.Create(application);
Frm_Emp.Parent := Mainpn;
//Frm_Emp.Left :=Trunc((Mainpn.Width-Frm_Emp.Width)/2) ;
//Frm_Emp.Top := Trunc((Mainpn.Height-Frm_Emp.Height)/2);
Frm_Emp.Show;
aCurForm := 'Frm_Emp';
CurForm := (Frm_Emp as TForm);
end;
2: begin
panel2.Visible := true;
if not assigned(frm_MachineInfo) then
frm_MachineInfo := Tfrm_MachineInfo.Create(application);
frm_MachineInfo.Parent := Mainpn;
//frm_MachineInfo.Left := Trunc((Mainpn.Width-frm_MachineInfo.Width)/2);
//frm_MachineInfo.Top := Trunc((Mainpn.Height-frm_MachineInfo.Height)/2) ;
frm_MachineInfo.Show;
aCurForm := 'frm_MachineInfo';
CurForm := (frm_MachineInfo as TForm);
end;
3: begin
panel2.Visible := false;
if not assigned(systemset) then
systemset := Tsystemset.Create(application);
systemset.Parent := Mainpn;
//systemset.Left := Trunc((Mainpn.Width-systemset.Width)/2);
//systemset.Top := Trunc((Mainpn.Height-systemset.Height)/2);
systemset.Show;
aCurForm := 'systemset';
CurForm := (systemset as TForm);
end;
4: begin
panel2.Visible := true;
if not assigned(Frm_AddDevice) then
Frm_AddDevice := TFrm_AddDevice.Create(application);
Frm_AddDevice.Parent := Mainpn;
//systemset.Left := Trunc((Mainpn.Width-systemset.Width)/2);
//systemset.Top := Trunc((Mainpn.Height-systemset.Height)/2);
Frm_AddDevice.Show;
aCurForm := 'Frm_AddDevice';
CurForm := (Frm_AddDevice as TForm);
end;
end;
end;
procedure TMainForm.Action1Execute(Sender: TObject);
var aID: integer;
begin
aID := (Sender as TAction).Tag;
SetForm(aID);
end;
procedure TMainForm.FormShow(Sender: TObject);
begin
GetDevList;
Action1.OnExecute(Action1);
end;
procedure TMainForm.DevListClick(Sender: TObject);
var i: integer;
adevid: integer;
begin
if aDevItem<>-1 then
begin
if (aCurForm='Frm_Emp') or (aCurForm='frm_MachineInfo') then
begin
for i:=0 to DevList.Items.Count-1 do
begin
if DevList.Items.Item[i].Index=aDevItem then
DevList.Items.Item[i].Checked := true
else
DevList.Items.Item[i].Checked := false;
end;
if aCurForm='Frm_Emp' then
begin
Frm_Emp.RefreshDevUserInfo;
end;
end;
if aCurForm='frm_ChildLoadData' then
begin
for i:=0 to DevList.Items.Count-1 do
begin
if DevList.Items.Item[i].Index=aDevItem then
begin
if DevList.Items.Item[i].Checked then
DevList.Items.Item[i].Checked := false
else
DevList.Items.Item[i].Checked := true
end
end;
end;
if aCurForm='Frm_AddDevice' then
begin
for i:=0 to DevList.Items.Count-1 do
begin
if DevList.Items.Item[i].Index=aDevItem then
begin
Frm_AddDevice.GetDeviceInfo(StrToInt(trim(DevList.Items.Item[i].Caption)));
break;
end;
end;
//adevid := StrToInt(trim(DevList.Items.Item[i].Caption));
//with Frm_AddDevice.QryDevice do
//begin
// if active then close;
// sql.Text := 'select DeviceID,DevName,SysPwd,IP,Port from Device where DeviceID='+trim(DevList.Items.Item[i].Caption);
// Open;
//end;
//Frm_AddDevice.QryDevice.Locate('DeviceID',StrToInt(trim(DevList.Items.Item[i].Caption)),[]);
end;
end;
end;
procedure TMainForm.DevListMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
try
aDevItem := DevList.GetItemAt(X,Y).Index;
except
aDevItem := -1;
end;
end;
procedure TMainForm.Action5Execute(Sender: TObject);
begin
CoolTrayIcon1.ShowMainForm;
end;
procedure TMainForm.Action6Execute(Sender: TObject);
begin
if application.MessageBox('确定要退出数据采集程序?','提示',MB_ICONQUESTION+MB_YESNO)=IDYES then
begin
CoolTrayIcon1.Free;
application.Terminate;
end;
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := Canone;
CoolTrayIcon1.HideMainForm;
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
var
dt: TDateTime;
i,cDevID: integer;
begin
dt := Time();
if ((dt - aLoadTime) > 0) and ((dt - aLoadTime) <= 1/(24*60)) then
begin
TLoadThread.Create(aDevInfo,aConnectRecord);
end;
end;
procedure TMainForm.Action3Execute(Sender: TObject);
var aID: integer;
begin
aID := (Sender as TAction).Tag;
SetForm(aID);
end;
procedure TMainForm.Action4Execute(Sender: TObject);
var aID: integer;
begin
aID := (Sender as TAction).Tag;
SetForm(aID);
end;
procedure TMainForm.Action7Execute(Sender: TObject);
var aID: integer;
begin
aID := (Sender as TAction).Tag;
SetForm(aID);
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
//Timer1.Enabled := true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -