详细代码如下
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, FileCtrl, ComCtrls,StrUtils;
type
TForm3 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
ListView1: TListView;
Label2: TLabel;
Edit2: TEdit;
Button3: TButton;
Button4: TButton;
Button5: TButton;
ProgressBar1: TProgressBar;
Button6: TButton;
Button7: TButton;
DriveComboBox1: TDriveComboBox;
Button8: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
if StrToInt(Edit2.Text)= 0 then begin ShowMessage('请输入大于0的卡号!');Exit; end;
with listview1.items.add do
begin
caption:=Edit2.Text;
Edit1.Text :=inttostr(ListView1.Items.Count);
end;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
ListView1.Items.Clear;
Edit1.Text :='0';
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
if StrToInt(Edit2.Text)= 0 then begin ShowMessage('请输入大于0的卡号!');Exit; end;
If Form1.POS011.DevComPortOpen = 1 Then
begin
Form1.POS011.DevNumber := StrToInt(Form1.Edit18.Text); //指定设备号
Form1.POS011.CardCustomNumberStr := Edit2.Text; //自编卡号
Form1.POS011.DevLossBitClear; //'在设备中清空该卡号的挂失信息
If Form1.POS011.OperatingResults = 0 Then
ShowMessage('取消单张卡号成功!')
Else
ShowMessage('设备通讯不通!');
end
else
begin
ShowMessage('端口未打开!');
end;
end;
procedure TForm3.Button4Click(Sender: TObject);
begin
if StrToInt(Edit2.Text)= 0 then begin ShowMessage('请输入大于0的卡号!');Exit; end;
If Form1.POS011.DevComPortOpen = 1 Then
begin
Form1.POS011.DevNumber := StrToInt(Form1.Edit18.Text); //指定设备号
Form1.POS011.CardCustomNumberStr := Edit2.Text; //自编卡号
Form1.POS011.DevLossBitWrite; //'在设备中清空该卡号的挂失信息
If Form1.POS011.OperatingResults = 0 Then
ShowMessage('挂失单张卡号成功!')
Else
ShowMessage('设备通讯不通!');
end
else
begin
ShowMessage('端口未打开!');
end;
end;
procedure TForm3.Button5Click(Sender: TObject);
begin
if StrToInt(Edit2.Text)= 0 then begin ShowMessage('请输入大于0的卡号!');Exit; end;
If Form1.POS011.DevComPortOpen = 1 Then
begin
Form1.POS011.DevNumber := StrToInt(Form1.Edit18.Text); //指定设备号
Form1.POS011.CardCustomNumberStr := Edit2.Text; //自编卡号
Form1.POS011.DevLossBitRead; //'在设备中清空该卡号的挂失信息
case form1.POS011.OperatingResults of
0: ShowMessage('该卡号已被挂失');
113: ShowMessage('该卡号可使用');
else ShowMessage('设备通讯不通');
end;
end
else
begin
ShowMessage('端口未打开!');
end;
end;
procedure TForm3.Button6Click(Sender: TObject);
var
i:Integer;
begin
If Form1.POS011.DevComPortOpen = 1 Then
begin
Form1.POS011.DevLossClearFromBuf;
For i:= 0 To ListView1.Items.Count-1 do
begin
Form1.POS011.CardCustomNumberStr := ListView1.Items[i].Caption ;
Form1.POS011.DevLossAddToBuf; // '加入挂失信息缓冲
end;
Form1.POS011.DevNumber :=StrToInt(Form1.Edit18.Text);
ProgressBar1.Max := Form1.POS011.DevLossFrames;
ProgressBar1.Position:= 0;
For i := 0 To Form1.POS011.DevLossFrames - 1 do
begin
Form1.POS011.DevLossFramePoint := i;
Form1.POS011.DevLossFrameWrite;
if Form1.POS011.OperatingResults <>0 then
break
else
ProgressBar1.Position :=i+1;
end;
If Form1.POS011.OperatingResults = 0 Then
ShowMessage('下载挂失信息成功!')
Else
ShowMessage('下载挂失信息失败!错误代码:'+IntToStr( Form1.POS011.OperatingResults));
end
else
ShowMessage('端口未打开!');
end;
procedure TForm3.Button8Click(Sender: TObject);
var
i:Integer;
begin
Form1.POS011.DevLossClearFromBuf; // '先清空缓冲
For i := 0 To ListView1.Items.Count-1 do
begin
Form1.POS011.CardCustomNumberStr := ListView1.Items[i].Caption;
Form1.POS011.DevLossAddToBuf; // '加入挂失信息缓冲
end;
Form1.POS011.DevDriverStr := LeftStr(DriveComboBox1.Text,2);
Form1.POS011.DevLossWriteAllToDisk;
If Form1.POS011.OperatingResults = 0 Then
ShowMessage('写覆盖式挂失信息到U盘或磁盘成功!')
Else
ShowMessage('写覆盖式挂失信息到U盘或磁盘失败,错误代码:'+ IntToStr(Form1.POS011.OperatingResults));
end;
procedure TForm3.Button7Click(Sender: TObject);
var
i:Integer;
begin
If Form1.POS011.DevComPortOpen = 1 Then
begin
ListView1.Items.Clear;
Form1.POS011.DevNumber :=StrToInt(Form1.Edit18.Text);
ProgressBar1.Max := Form1.POS011.DevLossFrames;
ProgressBar1.Position := 0;
For i := 0 To Form1.POS011.DevLossFrames - 1 do
begin
Form1.POS011.DevLossFramePoint := i;
Form1.POS011.DevLossFrameRead;
If Form1.POS011.OperatingResults <> 0 Then
Break
else
ProgressBar1.Position := i + 1;
end;
If Form1.POS011.OperatingResults = 0 Then
begin
If (Form1.POS011.DevLossBufSize > 0) Then
begin
Edit1.Text :=IntToStr(Form1.POS011.DevLossBufSize);
For i := 0 To Form1.POS011.DevLossBufSize - 1 do
begin
Form1.POS011.DevLossBufPoint := i;
with listview1.items.add do
caption:=Form1.POS011.CardCustomNumberStr;
end;
end;
end;
end
else
ShowMessage('端口未打开!');
end;
end.