Delphi6安装SPCOMM串口控件,创建动态Comm: array[1..10] of Tcomm数组后,定义CommReceiveData事件后,无法为控件指定,程序如下:
procedure CommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
begin
...
end;主程序:
var
Comm: array[1..10] of Tcomm;
i:integer;
begin
for i := 1 to 10 do
begin
Comm[i] := Tcomm.create(self);
comm[i].BAUDRATE := 9600;
comm[i].BYTESIZE := _8;
comm[i].PARITY := None;
comm[i].ParityCheck := False;
COMM[i].COMMNAME := 'COM' + inttostr(i);
COMM[i].OnReceiveData := TForm1.CommReceiveData;//此时出错,见下面
end;
end;此时系统提示错误:
[Error] ComArray.pas(57): Incompatible types: 'TReceiveDataEvent' and 'Procedure'
[Error] ComArray.pas(13): Unsatisfied forward or external declaration: 'TForm1.CommReceiveData'为什么?谢谢!
procedure CommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
begin
...
end;主程序:
var
Comm: array[1..10] of Tcomm;
i:integer;
begin
for i := 1 to 10 do
begin
Comm[i] := Tcomm.create(self);
comm[i].BAUDRATE := 9600;
comm[i].BYTESIZE := _8;
comm[i].PARITY := None;
comm[i].ParityCheck := False;
COMM[i].COMMNAME := 'COM' + inttostr(i);
COMM[i].OnReceiveData := TForm1.CommReceiveData;//此时出错,见下面
end;
end;此时系统提示错误:
[Error] ComArray.pas(57): Incompatible types: 'TReceiveDataEvent' and 'Procedure'
[Error] ComArray.pas(13): Unsatisfied forward or external declaration: 'TForm1.CommReceiveData'为什么?谢谢!
解决方案 »
- 高分求购 usb转232 驱动
- EhLib 中的PrintDBGridEh 放到窗体上后,运行程序 提示 系统错误 代码 1400 无效的窗口句柄。
- delhpi好像会自动把注册信息发送到borland的网站上去,如何屏蔽这些注册信息
- 请问怎么禁止EXE程序的执行
- delphi+sqlserver下的数据同步问题!!!急
- 怎么把一个字符串中全角的挎号转换成为半角的挎号,解决立刻给分,在线等待
- 哪位有《Delphi5开发人员指南》电子版本。。我以前的公司下过,但走的时候没带走。现在delphibbs上没有了。谁有能发给我呀,谢谢了!!
- 唉!又得麻烦各位了,在线等待!急..........
- 原来写C++,VB.现在公司要用DELPHI,我是处学者,希望能介绍几本书指导指导!!!有没有免费的DELPHI电子书的下载网站!!!!!谢谢
- 哥们,问一下,MTS中SetComplete函数怎么用?要引用哪个单元?
- 请问 E:EDATEABASEERROR ...........
- #####http://www.widesun.com软件完成,欢迎下载使用并提出意见,有分!!##########
procedure CommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
begin
...
end;
那么则
COMM[i].OnReceiveData := CommReceiveData你如果直接这样定义的
procedure TForm1.CommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
begin
...
end;
那么则
COMM[i].OnReceiveData := Form1.CommReceiveData
procedure CommReceiveData(...);
...
end;procedure TForm1.CommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
begin
...
end;procedure TForm1.FormCreate(...)
begin
...
Comm[i].OnReceiveData := CommReceiveData;
...
end;