仪表的通讯中,指令码出错 急哭了,在线等(20分)

  • 主题发起人 主题发起人 carrie4002
  • 开始时间 开始时间
TForm2 = class(TForm)
Comm1: TComm;
private
Function comm1_Rev():Double;
procedure comm2_sndData();
public
end;

var
Form2: TForm2;

implementation

Function TForm2.comm1_Rev():Double;
begin

end;

procedure TForm2.comm2_sndData();
begin
Comm1.CommName:='COM3';
end;
 
可报错:Unsatisfied forward or external declaration TForm2.comm1_Rev
为什么?
 
comm1_Rev的返回值是不是不对呀?
我编译这段,没什么问题呀.
 
to guanweiw:
谢谢。
Function comm1_Rev():Double;就是过程代码的开头。
所以,在private部分,只是直接拷贝了这一句过来。就算不拷贝
这句,它的下一句也报同样的错。
private
Function comm1_Rev():Double;
procedure comm2_sndData();
编译时一句也过不去。我在私变量这里定义的过程都不能通过。
哪里的原因?
 
呵呵,拷贝得加上 Form1.Comm1_Rev(): Double啊

并且spcomm的receive是指定参数的过程,你的comm1_rev是自定义的函数,是准备在spcomm的receive里再使用吗? 返回值从哪返回,怎么用呢?
 
To 诸葛:
谢谢你。
在窗体的代码里定义了2个过程和函数,
procedure Conn; //连接过程
Function ReadData():Double; //读数函数
那,
1、该如何在private中定义它们?在该窗体里其它过程里,该如何调用它们?
2、如果是别的窗体要调用它们,又该如何做?
 
var
str:string;
begin
Str:=':disp:text:stat off'#10#0;
WriteCommData(pchar(Str), length(Str));
 
TO 蓝叶菱:
问题是我上面的还没解决。
 
搞不明白你的说法,最好把那部分代码贴出来,或者把源码发来看一下,让人晕

QQ: 25750017
 
to 诸葛:
加你了。
 
多人接受答案了。
 
后退
顶部