procedure TForm1.Button4Click(Sender: TObject);
var i,iResult:integer;
EDate:array [0..10] of char;
cardHexStr:array [0..24] of char;
RoomNo:array [0..6] of char;
STmp:String;
begin
DateTimePicker1.Time:=DateTimePicker2.Time;
STmp:=formatdatetime('yymmddhhnn',DateTimePicker1.DateTime);
StrPCopy(EDate,STmp);
StrPCopy(RoomNo,edit3.text+edit4.text+edit5.text);
for i:=0 to 23 do cardHexStr[i]:=chr(32);
iResult:=RoomCard(hComHandle,strtoint(edit1.Text),EDate,RoomNo,cardHexStr);
memo1.Lines.Clear;
for i:=0 to 2 do memo1.Lines.Add(copy(cardHexStr,i*8+1,8)+chr(13));
if iResult<>1 then begin
Buzzer(hComHandle);
Showmessage('写卡失败');
end else begin
Showmessage('OK');
end;
end;
——————————————————————————
分割线以上代码运行出现错误
[错误] Unit1.pas(99): Incompatible types: 'Integer' and 'Array'
[错误] Unit1.pas(99): Not enough actual parameters
[致命错误] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
请各位达人赐教,万分感谢
var i,iResult:integer;
EDate:array [0..10] of char;
cardHexStr:array [0..24] of char;
RoomNo:array [0..6] of char;
STmp:String;
begin
DateTimePicker1.Time:=DateTimePicker2.Time;
STmp:=formatdatetime('yymmddhhnn',DateTimePicker1.DateTime);
StrPCopy(EDate,STmp);
StrPCopy(RoomNo,edit3.text+edit4.text+edit5.text);
for i:=0 to 23 do cardHexStr[i]:=chr(32);
iResult:=RoomCard(hComHandle,strtoint(edit1.Text),EDate,RoomNo,cardHexStr);
memo1.Lines.Clear;
for i:=0 to 2 do memo1.Lines.Add(copy(cardHexStr,i*8+1,8)+chr(13));
if iResult<>1 then begin
Buzzer(hComHandle);
Showmessage('写卡失败');
end else begin
Showmessage('OK');
end;
end;
——————————————————————————
分割线以上代码运行出现错误
[错误] Unit1.pas(99): Incompatible types: 'Integer' and 'Array'
[错误] Unit1.pas(99): Not enough actual parameters
[致命错误] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
请各位达人赐教,万分感谢
我知道类型错误啊,说是整数型和字符型不匹配,但问题是怎么改啊?
原来也是这样完全可以的。iResult:=RoomCard(hComHandle,strtoint(edit1.Text),EDate,RoomNo,cardHexStr);
我删了两个edit。text就不行了。帮我啊
第99行是:iResult:=RoomCard(hComHandle,strtoin(edit1.Text),EDate,RoomNo,cardHexStr);
[错误] Unit1.pas(99): Incompatible types: 'Integer' and 'Array'
[错误] Unit1.pas(99): Not enough actual parameters
第一错误是类型错误,第二个错误是参数个数不够。
这两个错误都需要你提供RoomCard这个函数原型才能给出明确的修改方法。
就目前而言,
iResult:=RoomCard(hComHandle,strtoin(edit1.Text),EDate,RoomNo,cardHexStr);
你肯定少给了参数进去,你传来5个参数,函数原型里面肯定不止5个,你自己去算算。
还有就是,你给参数的时候没有按照函数原型去给参数,改给ineger的你却给了个Array。
EDate:array [0..10] of char;
cardHexStr:array [0..24] of char;
RoomNo:array [0..6] of char;
都是数组,所以,你再参看一下RoomCard的函数原型,类型匹配好,问题应该可以解决了。