如何得到TEdit.text的地址?因为有指针要指向它。

hqhqhw 2002-08-22 04:04:56
要得到TEdit.text的地址,然后赋给一个字符串指针。下面的代码应该怎么修改?或者还有别的办法实现?
var edit1p,edit2p:^string;
edit1p:=@(edit1.text);
edit2p:=@(edit2.text);
...全文
86 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
耙子 2002-08-22
  • 打赏
  • 举报
回复
你得不到它有效的指针。
这个问题,我几年前曾经也试图得到,想在别的函数里面通过指针赋值。
一支不行,后来看了TEdit的源代码才知道为什么不行。

看help能知道这个Text属性继承与TControl.
真正的Text 是 private FText,我们访问不到。
我们平时使用 Text:= xxx;
xxx:= Edit.Text 这都是通过方法操作的,所以单单从 Edit.Text 上面的不到任何有效的指针。
largewang 2002-08-22
  • 打赏
  • 举报
回复
Edit.Text是动态得到的,哪来的地址啊!


直接指向edit不就可以访问它的Text了,何必硬要指到它的Edit呢?!!!

ilang 2002-08-22
  • 打赏
  • 举报
回复
只知道赋予字符串可以这样SendMessage(Edit1.Handle, EM_REPLACESEL, 0, LongInt(PChar('xy')));
knock 2002-08-22
  • 打赏
  • 举报
回复
pchar(edit1.text); 就变成指针形式的了
gaoys1979 2002-08-22
  • 打赏
  • 举报
回复
string是delphi自己管理的东东,不推荐使用他的指针操作。
最好使用pchar

这种理论性的研究也比较少见。;)
hks 2002-08-22
  • 打赏
  • 举报
回复
TEdit.Text是一个属性,不是用来存储东西的地方,你用字符串指针指向它干吗?
馮強 2002-08-22
  • 打赏
  • 举报
回复
这样写:

var edit1p,edit2p:^String;

begin

edit1p^:=edit1.text;
edit2p^:=edit2.text;
end;

end.
Brune 2002-08-22
  • 打赏
  • 举报
回复
var
a:pchar
a:=pchar(edit1.text);

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧