📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, Db, DBTables, ToolWin, ComCtrls, ExtCtrls, StdCtrls, Buttons,
ImgList, Grids, DBGrids, ScktComp;
type
TCustomDBGridCracker = class(TCustomDBGrid) ;
TFrm_Main = class(TForm)
MainMenu1: TMainMenu;
ControlBar1: TControlBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ImageList1: TImageList;
Panel1: TPanel;
DBGrid1: TDBGrid;
Splitter1: TSplitter;
Memo1: TMemo;
DataSource1: TDataSource;
Timer1: TTimer;
Timer2: TTimer;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N17: TMenuItem;
N16: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N24: TMenuItem;
N25: TMenuItem;
N27: TMenuItem;
N28: TMenuItem;
N23: TMenuItem;
N26: TMenuItem;
N29: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
N33: TMenuItem;
N34: TMenuItem;
N35: TMenuItem;
N36: TMenuItem;
N38: TMenuItem;
N39: TMenuItem;
N41: TMenuItem;
N44: TMenuItem;
N45: TMenuItem;
N47: TMenuItem;
N46: TMenuItem;
SSocket: TServerSocket;
CLSocket: TClientSocket;
PopupMenu1: TPopupMenu;
PopupMenu2: TPopupMenu;
N4: TMenuItem;
N8: TMenuItem;
ListBox4: TListBox;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N30: TMenuItem;
N37: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure N44Click(Sender: TObject);
procedure N45Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure N24Click(Sender: TObject);
procedure N25Click(Sender: TObject);
procedure N27Click(Sender: TObject);
procedure N28Click(Sender: TObject);
procedure N32Click(Sender: TObject);
procedure N34Click(Sender: TObject);
procedure N47Click(Sender: TObject);
procedure N42Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure N36Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N29Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N39Click(Sender: TObject);
procedure N38Click(Sender: TObject);
procedure SSocketClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure CLSocketError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure N8Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N30Click(Sender: TObject);
private
procedure SoleRight(Sender: TObject); // 设定权限
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_Main: TFrm_Main;
implementation
uses sys_dm, sys_global, sys_login, DllDef, AlterPassword, ScreenProtect,
operator, CardIssue, CardUpdate, Init, GRate, Terminal, CardDele, CardAddOn,
CardLoss, HandIN, GrpSum, Dlg1, Dlg2, Dlg3, FMAKEXTCS, UDATASOURCE,
ShowCards, Fxtcs, sfmx ;
{$R *.DFM}
const
vers='ICCARDREADER' ;
var
RHost: string='' ; // 远程电脑名称
procedure TFrm_Main.FormCreate(Sender: TObject);
begin
dateseparator := '-' ;
shortdateformat := 'yyyy-mm-dd';
end;
procedure TFrm_Main.FormShow(Sender: TObject);
begin
timer1.Enabled := true ; //进入登录窗口
end;
procedure TFrm_Main.Timer1Timer(Sender: TObject);
var
info: array[0..60] of char;
begin
timer1.Enabled := false;
frm_sys_dm.ADOCNT1.close;
frm_sys_dm.ADOCNT1.ConnectionString:='Provider=SQLOLEDB.1;Password=ADELOK;'+
'Persist Security Info=True;User ID=ADEL;Initial Catalog=netbar;Data Source='+READCONN+
';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;'+
'Use Encryption for Data=False;Tag with column collation when possible=False';
TRY
frm_sys_dm.ADOCNT1.Open();
EXCEPT
BEEP;
messagebox(handle,PCHAR('登录数据库不成功 '+READCONN) ,'提示',mb_ok);
CLOSE;
EXIT;
END;
if openquery(frm_sys_dm.Qxtcs,'')<0 then begin
beep;
messagebox(handle,'网络错误,查询数据失败','提示',16);
close;
exit;
end;
if frm_sys_dm.Qxtcs.RecordCount=0 then begin
messagebox(handle,'初次运行,请设置系统参数','提示',64);
Application.CreateForm(TF_MAKEXTCS, F_MAKEXTCS);
f_makextcs.MINSTEP:=1;
f_makextcs.maxSTEP:=3;
if F_MAKEXTCS.showmodal<>mrok then begin
close;
exit;
end;
end;
if openquery(frm_sys_dm.Qxtcs,'')<0 then begin
beep;
messagebox(handle,'网络错误,查询数据失败','提示',16);
close;
exit;
end;
{if not checklimit then BEGIN // 检查使用权限是否到期
CLOSE;
exit;
END;}
m_syspara:=sys_dm.padl(inttostr(frm_sys_dm.QXTCS.FIELDBYNAME('ID').ASInteger mod 10000),4,'0');
m_icpass:=trim(frm_sys_dm.QXTCS.FIELDBYNAME('ICPASS').ASSTRING);
ps(pchar(m_syspara)); // 产生系统参数
m_com:= readcom; // 通过注册表打开串口
if not OpenCom(m_com) then begin
MessageBox(handle,'不能打开串口','提示', mb_ok);
close;
exit ;
end;
if Get_Version(m_com, info) <> 0 then
begin
MessageBox(handle,'电脑检测不到发行机,请检查连接 ','提示', mb_ok);
close;
exit;
end;
if uppercase(copy(info,1,12))<> Vers then begin
MessageBox(handle,'请选用正确的发行机','提示', mb_ok);
close;
exit ;
end ;
if frm_sys_login.showmodal<>mrok then begin
close;
exit;
end;
frm_sys_login.free ;
frm_sys_dm.Qr_tmpp.Open ;
SoleRight(Sender); // 设定权限
Timer2Timer(Sender);
timer2.Enabled:=true;
SSocket.Active := true ; // 打开SSocket
with frm_sys_dm.Qr_tmp1 do
begin
close;
sql.Clear ;
sql.Text := 'select yj, sxrq from pdata' ;
open ;
m_YJ := fields[0].AsInteger ; // 押金
m_sxrq := fields[1].asinteger ; // 失效时间
close ;
end;
end;
procedure TFrm_Main.Timer2Timer(Sender: TObject);
var
TmName: string ;
begin
timer2.Enabled := false;
with frm_sys_dm.Qr_tmpp do
begin
disablecontrols;
TmName := fieldbyname('TermName').AsString ;
close;
open;
locate('TermName',TmName,[]) ;
enablecontrols;
end;
timer2.Enabled := true ;
end;
// 确定权限
procedure TFrm_Main.SoleRight(Sender: TObject);
begin
if m_system='1' then N11.Visible := true else N11.Visible := false ;
if m_card='1' then N21.Visible := true else N21.Visible := false ;
if m_report='1' then N31.Enabled := true else N31.Visible := true ;
end;
// 操作人员维护
procedure TFrm_Main.N12Click(Sender: TObject);
begin
frm_operator := Tfrm_operator.create(application);
frm_operator.showmodal;
frm_operator.free;
end;
// 初始化
procedure TFrm_Main.N14Click(Sender: TObject);
begin
Frm_Init := TFrm_Init.create(application);
Frm_Init.showmodal ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -