詳細代碼如下
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.