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

📄 u_mainform.pas

📁 中控800型号考勤机的自动采集数据程序。能够手动采集
💻 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 + -