2013-05-30 31 views
2

这似乎是一个很简单的一个,但我是新来的Delphi和谷歌还没有止跌回升什么...不兼容的类型“字符串”和“TEDIT”

我有我的窗体上的编辑字段我创建了具有形式的作用的成分:

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功能。

回答

10

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

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

HAHAH卫生署。是的,这样做:) – mulllhausen

+0

在8分钟内我可以! – mulllhausen

+1

最有可能的是,您从另一种语言(如Visual Basic)转移到Delphi,它允许这样的功能(指的是控件的文本或标题属性,而不提及属性) –

相关问题