?? scdlldemounit.~pas
字號:
unit SCDLLDemoUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TDemoFrm = class(TForm)
GroupBox1: TGroupBox;
Memo1: TMemo;
ComPortCBB: TComboBox;
Label1: TLabel;
Button2: TButton;
GroupBox2: TGroupBox;
Button1: TButton;
Edit1: TEdit;
Button7: TButton;
Button8: TButton;
GroupBox3: TGroupBox;
DspDataET: TEdit;
Button9: TButton;
Label4: TLabel;
Label5: TLabel;
dotET: TEdit;
Button10: TButton;
Button11: TButton;
GroupBox4: TGroupBox;
Edit2: TEdit;
Button12: TButton;
Label6: TLabel;
GroupBox5: TGroupBox;
Label7: TLabel;
SNRET: TEdit;
Button13: TButton;
WriteBtn: TButton;
ReadBtn: TButton;
DataET: TEdit;
Timer1: TTimer;
Button14: TButton;
Button15: TButton;
Button16: TButton;
GroupBox6: TGroupBox;
Label3: TLabel;
KeyCBB: TComboBox;
Button6: TButton;
Button17: TButton;
Label8: TLabel;
NewKeyCBB: TComboBox;
GroupBox7: TGroupBox;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Label2: TLabel;
Label9: TLabel;
SectorCBB: TComboBox;
ChangeKeyBtn: TButton;
procedure FormCreate(Sender: TObject);
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 Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure WriteBtnClick(Sender: TObject);
procedure ReadBtnClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DemoFrm: TDemoFrm;
iRe:integer;
rHandle:Thandle;
pSNR:pchar;
implementation
{$R *.dfm}
uses SCDLLUnit;
procedure TDemoFrm.FormCreate(Sender: TObject);
begin
ComPortCBB.ItemIndex := 0;
KeyCBB.ItemIndex :=0;
NewKeyCBB.ItemIndex := 0;
SectorCBB.ItemIndex := 0;
dotET.Text := '6';
DspDataET.Text :='12345678';
Edit2.Text := '3';
DataET.Text := '11223344556677889900AABBCCDDEEFF';
SNRET.Text := '';
end;
procedure TDemoFrm.Button1Click(Sender: TObject);
begin
iRe:=InitPort(ComPortCBB.ItemIndex +1,rHandle);
Memo1.Lines.Add( IntToStr(iRe) );
end;
procedure TDemoFrm.Button2Click(Sender: TObject);
begin
iRe:=ClosePort(rHandle);
Memo1.Lines.Add( IntToStr(iRe) );
end;
procedure TDemoFrm.Button3Click(Sender: TObject);
begin
iRe := SC_Request(rHandle); //尋卡
Memo1.Lines.Add( IntToStr(iRe) );
if iRe=4 then
Begin
Label2.Caption:= '有卡';
Label2.Update;
end;
if iRe<>4 then
Begin
Label2.Caption:= '無卡';
Label2.Update;
end;
end;
procedure TDemoFrm.Button4Click(Sender: TObject);
Var
pSNR:Pchar;
begin
GetMem(pSNR,16);
iRe:=SC_GetSnr(rHandle,pSNR);
Memo1.Lines.Add( IntToStr(iRe) +' '+String(pSNR));
FreeMem(pSNR,16);
end;
procedure TDemoFrm.Button5Click(Sender: TObject);
Var
pSNR:Pchar;
begin
iRe:=SC_SelectSnr(rHandle,pSNR);
Memo1.Lines.Add( IntToStr(iRe) +' '+String(pSNR));
end;
procedure TDemoFrm.Button6Click(Sender: TObject);
{
Var
pKey:Pchar;
begin
pKey:=Pchar('FFFFFFFFFFFF');
iRe:=SC_Authentication(rHandle,60,1,pKey);
Memo1.Lines.Add( IntToStr(iRe) +' ');
}
Var
iMode:integer;
iSector:integer;
pKey:Pchar;
begin
GetMem(pSNR,64);
iMode := 60;
iSector := StrToInt(SectorCBB.Text);
pKey := Pchar( KeyCBB.Text );
iRe:= SC_Authentication( rHandle,iMode,iSector,pKey);
Memo1.Lines.Add( intTostr(iRe));
FreeMem(pSNR,64);
end;
procedure TDemoFrm.Button7Click(Sender: TObject);
Var
iBlock:integer;
pData:Pchar;
begin
GetMem(pData,64);
iBlock := 1;
iRe:= SC_RFRead(rHandle, iBlock, pData);
Memo1.Lines.Add( intTostr(iRe)+' Data: '+String(pData) );
FreeMem(pData,64);
end;
procedure TDemoFrm.Button8Click(Sender: TObject);
Var
iBlock:integer;
pData:Pchar;
begin
//GetMem(pData,64);
iBlock := 1;
pData := Pchar('11223344556677889900AABBCCDDEEFF');
iRe:= SC_RFWrite( rHandle,iBlock,pData);
Memo1.Lines.Add( intTostr(iRe)+' Data: '+String(pData) );
//FreeMem(pData,64);
end;
procedure TDemoFrm.Button9Click(Sender: TObject);
Var
pData:Pchar;
idot :integer;
begin
//pData := Pchar('11223344556677889900AABBCCDDEEFF');
pData:= Pchar(DspDataET.Text );
idot := StrToInt(dotEt.Text);
iRe:= SC_LEDDSP( rHandle,pData,idot);
end;
procedure TDemoFrm.Button10Click(Sender: TObject);
Var
pData:Pchar;
fValues:Extended;
begin
pData:= Pchar(DspDataET.Text );
fValues:=123456.78;
iRe:= SC_LEDDSPV( rHandle,fValues);
end;
procedure TDemoFrm.Button12Click(Sender: TObject);
begin
iRe := SC_Beep(rHandle,0,StrToInt(Edit2.Text));
end;
procedure TDemoFrm.Button13Click(Sender: TObject);
var
pSNR:Pchar;
begin
//打開通訊口
iRe:=InitPort(ComPortCBB.ItemIndex +1,rHandle);
if iRe <> 0 then
Begin Application.MessageBox('無法打開串口,可能是以下原因造成的,請檢查....'+
#13+#13+'1.計算的串口(COM口)被其他設備占,請先關閉其它程序重試......'+#13+#13+
'2.讀寫機的通訊電纜沒有與計算機連接,請檢查......','系統提示-串口操作'
,MB_OK+MB_ICONWARNING); Exit; end; //打開串口失敗,提示后,退出
//查詢讀寫機上是否有卡,有卡繼續下一步操作,無卡退出
iRe := SC_Request(rHandle); //尋卡
//Memo1.Lines.Add( IntToStr(iRe) );
if iRe<>4 then
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -