Delphi 不兼容类型';字符串';和';TEdit&x27;

Delphi 不兼容类型';字符串';和';TEdit&x27;,delphi,Delphi,这似乎是一个非常简单的一个,但我是新的德尔福和谷歌没有发现任何东西 我的表单上有一个编辑字段,我创建了一个具有表单功能的组件: type TComms = class(TComponent) published function BuildPacket(const APacketData: string): string; 现在我将编辑表单的输出传递给函数,如下所示: procedure TForm1.xxxxx(Sender: TObject) var NewPack

这似乎是一个非常简单的一个,但我是新的德尔福和谷歌没有发现任何东西

我的表单上有一个编辑字段,我创建了一个具有表单功能的组件:

type
    TComms = class(TComponent)
  published
    function BuildPacket(const APacketData: string): string;
现在我将编辑表单的输出传递给函数,如下所示:

procedure TForm1.xxxxx(Sender: TObject)
var
  NewPacket: string;
begin
  NewPacket := Comms.BuildPacket(EditVal);
end;
我得到了错误

Incompatible types 'String' and 'TEdit'

我应该将编辑值转换为字符串吗?或者我的组件应该进行转换?我不想让输入成为组件的属性或任何东西—只是
BuildPacket
函数的参数。

是的,您传递的是编辑框本身,而不是它的值。尝试:

NewPacket := Comms.BuildPacket(EditVal.text);

很可能您是从另一种语言(如Visual Basic)迁移到Delphi的,该语言允许此类功能(引用控件的文本或标题属性而不提及属性)