📄 tfrmadds.pas
字号:
unit TfrmAddS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ICCTRL, TFlatEditUnit, ExtCtrls, TFlatSpinEditUnit,
TFlatButtonUnit,Inifiles;
type
PClockInfo=^TClockInfo;
TClockInfo=record
ID: WORD;
ClockNo: String;
ClockName: String;
Port: WORD;
BaudRate: DWORD;
end;
type
TFrmAdd = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
FlatEdit1: TFlatEdit;
FlatEdit2: TFlatEdit;
FlatEdit3: TFlatEdit;
FlatEdit4: TFlatEdit;
FlatEdit5: TFlatEdit;
Label6: TLabel;
FlatSpinEditInteger1: TFlatSpinEditInteger;
Bevel1: TBevel;
FlatButton1: TFlatButton;
FlatButton2: TFlatButton;
FlatButton3: TFlatButton;
procedure FlatButton3Click(Sender: TObject);
procedure FlatButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FlatButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmAdd: TFrmAdd;
implementation
uses DTConnects, MainFRMS;
{$R *.dfm}
function IntToStrLen(Value : Integer; ResultLength :Byte):String;
begin
Result:=IntToStr(Value);
while Length(Result) < Resultlength do
Result:='0'+Result;
Result:=Copy(Result, Length(Result)-ResultLength+1, ResultLength);
end;
procedure TFrmAdd.FlatButton3Click(Sender: TObject);
begin
self.Release;
end;
procedure TFrmAdd.FlatButton1Click(Sender: TObject);
var hPort: THandle;
pclk: PClockInfo;
CardInfo: TCardInfo;
ReadInfo: TIniFile;
FileName:String;
CardNoStr: String;
Right:boolean;
UserID:Integer;
begin
FileName:=ExtractFilePath(Application.ExeName)+'CardInfo.ini';
ReadInfo:=TIniFile.Create(FileName);
with ReadInfo do begin
new(pclk);
pclk.ID:=StrToIntDef(ReadString('NewCard','ID',''),1);
pclk.ClockNo:=ReadString('NewCard','DeviceNo','');
pclk.ClockName:=ReadString('NewCard','Devicena','');
pclk.Port:=StrToIntDef(ReadString('NewCard','Port',''),4);
pclk.BaudRate:= StrToIntDef(ReadString('NewCard','Speed','') , 9600);
end;
MainFRM.StatusBar1.Panels[0].Text:='链接到发卡机上...';
hPort:=OpenCommPort(pclk.Port, pclk.BaudRate);
Right:=ReadCardInfo(hPort, @CardInfo);
MainFRM.StatusBar1.Panels[0].Text:='正在读卡上的信息...';
if right then begin
FlatEdit1.Text:=IntToStrLen(CardInfo.CardNo, 5);
FlatEdit5.Text:=PChar(@CardInfo.Name[1]);
FlatEdit2.Text:=floattostr(CardInfo.Money/10);
FlatEdit3.Text:=inttostr(CardInfo.Times);
FlatEdit4.Text:=datetostr(date);
Application.MessageBox('读IC卡信息成功!','操作提示',0+32);
MainFRM.StatusBar1.Panels[0].Text:='读IC卡信息成功!';
end else begin
Application.MessageBox('读IC卡信息失败!','操作提示',0+16);
MainFRM.StatusBar1.Panels[0].Text:='读IC卡信息失败!';
end;
Windows.Beep(2500, 150);
CloseCommPort(hPort);
end;
procedure TFrmAdd.FormClose(Sender: TObject; var Action: TCloseAction);
begin
self.Release;
end;
procedure TFrmAdd.FlatButton2Click(Sender: TObject);
var hPort: THandle;
pclk: PClockInfo;
CardInfo: TCardInfo;
ReadInfo: TIniFile;
FileName:String;
CardNoStr: String;
Right:boolean;
UserID:Integer;
begin
FileName:=ExtractFilePath(Application.ExeName)+'CardInfo.ini';
ReadInfo:=TIniFile.Create(FileName);
CardInfo.CardNo:=StrToIntDef(FlatEdit1.Text, 0);
CardInfo.Times:=StrToIntDef(FlatEdit3.Text, 0)+1;
CardInfo.Money:=Round((StrToFloat(FlatEdit2.Text)+FlatSpinEditInteger1.Value)*10);
StrPCopy(@CardInfo.Name[1],FlatEdit5.Text);
with ReadInfo do begin
new(pclk);
pclk.ID:=StrToIntDef(ReadString('NewCard','ID',''),1);
pclk.ClockNo:=ReadString('NewCard','DeviceNo','');
pclk.ClockName:=ReadString('NewCard','Devicena','');
pclk.Port:=StrToIntDef(ReadString('NewCard','Port',''),4);
pclk.BaudRate:= StrToIntDef(ReadString('NewCard','Speed','') , 9600);
end;
MainFRM.StatusBar1.Panels[0].Text:='链接到发卡机上...';
hPort:=OpenCommPort(pclk.Port, pclk.BaudRate);
Right:=WriteCardInfo(hPort, @CardInfo);
if Right then begin
Application.MessageBox('充值完成. ','操作提示',0+32);
MainFRM.StatusBar1.Panels[0].Text:='充值完成.';
with DTConnect do begin
ADOCommand1.CommandText:='Execute AddMoneyR '+chr(39)+FlatEdit1.Text+chr(39)+','
+chr(39)+FlatEdit5.Text+chr(39)+','
+inttostr(FlatSpinEditInteger1.Value);
ADOCommand1.Execute;
end;
end else begin
Application.MessageBox('充值过程失败. ','操作提示',0+16);
MainFRM.StatusBar1.Panels[0].Text:='充值过程失败.';
end;
Windows.Beep(2500, 150);
FlatSpinEditInteger1.Value:=0;
CloseCommPort(hPort);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -