各位大佬:
小弟在编程过程中遇到如此问题,百思不知如何解决,请各位大佬指教.
用明华非接触式读卡器(USB)读4442卡,其中FUNCTION中有length,但在FORM中还有一个数字键盘主要为在触摸屏上输入用(procedure TForm7.FormShow(Sender: TObject);),运行时在含有LENGTH语句中报错(missing operator or semicolom),但这估计不会是分号的问题,我将function语句删除,程序正常.估计是function中的length和程序中的length不相同,更要命的是在前几个FORM中都有类似的小键盘程序,是算是删除了本FORM中的程序,报错就到前FORM中的类似语句上(相同的报错信息),请大佬帮助解决,非常感激!
unit Unit7;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, ExtCtrls;type
TForm7 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
Panel11: TPanel;
Panel12: TPanel;
Panel13: TPanel;
Panel14: TPanel;
GroupBox2: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure FormShow(Sender: TObject);
procedure Panel3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form7: TForm7;
data1,data2,data3,data4,data5,data6:Array[0..256]of char;
hexdata1,hexdata2:Array[0..256]of char; password1:Array[0..3]of char;
password:array[0..8]of char; icdev:longint;
st:integer;
// password:pchar;
length:smallint;
offset:smallint;
counter:smallint;
proval:array[0..3]of char;//pchar;
status:integer;
dest,source:array[0..16]of char; proval1:array[0..7]of char;// operate sle 4442
function swr_4442(icdev: longint;offset:smallint;length:smallint;data1:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'swr_4442';
function srd_4442(icdev: longint;offset:smallint;length:smallint; data1:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'srd_4442';
function prd_4442(icdev: longint;length:smallint;data1:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'prd_4442';
function pwr_4442(icdev: longint;offset:smallint;length:smallint;data1:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'pwr_4442';
function chk_4442(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'chk_4442';function csc_4442(icdev: longint;length:smallint;password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'csc_4442';
function wsc_4442(icdev: longint;length:smallint; password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'wsc_4442';
function rsc_4442(icdev: longint;length:smallint; password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'rsc_4442';
function rsct_4442(icdev: longint;counter:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'rsct_4442'; //use general function
//function usb_ic_init(port: smallint;baud:longint): longint; stdcall;
//far;external 'Mwic_32.dll' name 'usb_ic_init';
function usb_ic_init(): longint; stdcall;
far;external 'mwic_32.dll' name 'usb_ic_init';
function usb_auto_init(): longint; stdcall;
far;external 'Mwic_32.dll' name 'usb_auto_init';
function usb_ic_exit(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll' name 'usb_ic_exit';
function get_status(icdev: longint;status:pchar):smallint;stdcall;
far;external 'MWIC_32.dll' name 'get_status'; function cmp_dvsc(icdev:longint;length:smallint;password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll' name 'cmp_dvsc';
function setsc_md(icdev: longint;mode:smallint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'setsc_md';
function srd_dvsc(icdev: longint;length:smallint;password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'srd_dvsc'
function swr_dvsc(icdev: longint;length:smallint;password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'swr_dvsc'; function turn_off(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'turn_off';
function turn_on(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'turn_on';
function auto_pull(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'auto_pull';
function srd_ver(icdev: longint;length:smallint;ver:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'srd_ver';
function dv_beep(icdev: longint;time:smallint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'dv_beep'; function asc_hex(asc:pchar;hex:pchar;len:smallint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'asc_hex';
function hex_asc(hex:pchar;asc:pchar;len:smallint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'hex_asc'; function ic_encrypt(key:pchar;source:pchar;len:smallint;dest:pchar):smallint;
stdcall;far;external 'MWIC_32.dll'name 'ic_encrypt';
function ic_decrypt(key:pchar;dest:pchar;len:smallint;source:pchar):smallint;
stdcall;far;external 'MWIC_32.dll'name 'ic_decrypt';implementationuses Unit6;
var
cpos,linelength:integer;
{$R *.dfm}
procedure TForm7.FormShow(Sender: TObject);
begin
edit2.SetFocus ;
edit1.Text:=form6.edit1.text;
edit2.Text :='';
edit3.Text:=form6.edit2.text;
edit4.Text:='';end;
procedure TForm7.Panel3Click(Sender: TObject);
var
panel3_s1:string;
begin
edit2.ClearSelection;
panel3_s1:=panel3.Caption;
edit2.Text:=edit2.Text+panel3_s1;
edit2.selstart:=length(edit2.text);
edit2.sellength:=length(edit2.text);
end;end.
小弟在编程过程中遇到如此问题,百思不知如何解决,请各位大佬指教.
用明华非接触式读卡器(USB)读4442卡,其中FUNCTION中有length,但在FORM中还有一个数字键盘主要为在触摸屏上输入用(procedure TForm7.FormShow(Sender: TObject);),运行时在含有LENGTH语句中报错(missing operator or semicolom),但这估计不会是分号的问题,我将function语句删除,程序正常.估计是function中的length和程序中的length不相同,更要命的是在前几个FORM中都有类似的小键盘程序,是算是删除了本FORM中的程序,报错就到前FORM中的类似语句上(相同的报错信息),请大佬帮助解决,非常感激!
unit Unit7;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, ExtCtrls;type
TForm7 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
Panel11: TPanel;
Panel12: TPanel;
Panel13: TPanel;
Panel14: TPanel;
GroupBox2: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure FormShow(Sender: TObject);
procedure Panel3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form7: TForm7;
data1,data2,data3,data4,data5,data6:Array[0..256]of char;
hexdata1,hexdata2:Array[0..256]of char; password1:Array[0..3]of char;
password:array[0..8]of char; icdev:longint;
st:integer;
// password:pchar;
length:smallint;
offset:smallint;
counter:smallint;
proval:array[0..3]of char;//pchar;
status:integer;
dest,source:array[0..16]of char; proval1:array[0..7]of char;// operate sle 4442
function swr_4442(icdev: longint;offset:smallint;length:smallint;data1:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'swr_4442';
function srd_4442(icdev: longint;offset:smallint;length:smallint; data1:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'srd_4442';
function prd_4442(icdev: longint;length:smallint;data1:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'prd_4442';
function pwr_4442(icdev: longint;offset:smallint;length:smallint;data1:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'pwr_4442';
function chk_4442(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'chk_4442';function csc_4442(icdev: longint;length:smallint;password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'csc_4442';
function wsc_4442(icdev: longint;length:smallint; password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'wsc_4442';
function rsc_4442(icdev: longint;length:smallint; password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'rsc_4442';
function rsct_4442(icdev: longint;counter:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'rsct_4442'; //use general function
//function usb_ic_init(port: smallint;baud:longint): longint; stdcall;
//far;external 'Mwic_32.dll' name 'usb_ic_init';
function usb_ic_init(): longint; stdcall;
far;external 'mwic_32.dll' name 'usb_ic_init';
function usb_auto_init(): longint; stdcall;
far;external 'Mwic_32.dll' name 'usb_auto_init';
function usb_ic_exit(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll' name 'usb_ic_exit';
function get_status(icdev: longint;status:pchar):smallint;stdcall;
far;external 'MWIC_32.dll' name 'get_status'; function cmp_dvsc(icdev:longint;length:smallint;password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll' name 'cmp_dvsc';
function setsc_md(icdev: longint;mode:smallint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'setsc_md';
function srd_dvsc(icdev: longint;length:smallint;password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'srd_dvsc'
function swr_dvsc(icdev: longint;length:smallint;password:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'swr_dvsc'; function turn_off(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'turn_off';
function turn_on(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'turn_on';
function auto_pull(icdev: longint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'auto_pull';
function srd_ver(icdev: longint;length:smallint;ver:pchar):smallint;stdcall;
far;external 'MWIC_32.dll'name 'srd_ver';
function dv_beep(icdev: longint;time:smallint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'dv_beep'; function asc_hex(asc:pchar;hex:pchar;len:smallint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'asc_hex';
function hex_asc(hex:pchar;asc:pchar;len:smallint):smallint;stdcall;
far;external 'MWIC_32.dll'name 'hex_asc'; function ic_encrypt(key:pchar;source:pchar;len:smallint;dest:pchar):smallint;
stdcall;far;external 'MWIC_32.dll'name 'ic_encrypt';
function ic_decrypt(key:pchar;dest:pchar;len:smallint;source:pchar):smallint;
stdcall;far;external 'MWIC_32.dll'name 'ic_decrypt';implementationuses Unit6;
var
cpos,linelength:integer;
{$R *.dfm}
procedure TForm7.FormShow(Sender: TObject);
begin
edit2.SetFocus ;
edit1.Text:=form6.edit1.text;
edit2.Text :='';
edit3.Text:=form6.edit2.text;
edit4.Text:='';end;
procedure TForm7.Panel3Click(Sender: TObject);
var
panel3_s1:string;
begin
edit2.ClearSelection;
panel3_s1:=panel3.Caption;
edit2.Text:=edit2.Text+panel3_s1;
edit2.selstart:=length(edit2.text);
edit2.sellength:=length(edit2.text);
end;end.
您说的很对,我估计就是FUNCATION中的LENGTH和delphi中的length名称相同,但又不能去除一个,这如何是好?
length:smallint;
够乱,把定义名字换下试试
如果是同名函数参数冲突,可跟进去看看究竟调用的是哪个函数,如果确认是函数调用错误,用你调用
的单元做前缀区分如:SysStem单元的System.Length()
procedure TForm7.Panel3Click(Sender: TObject);
var
panel3_s1:string;
begin
edit2.ClearSelection;
panel3_s1:=panel3.Caption;
edit2.Text:=edit2.Text+panel3_s1;
edit2.selstart:=System.length(edit2.text);
edit2.sellength:=System.length(edit2.text);
end;
干吗非要用Length做函数名?