窗体handle的一个小问题

最近在做一个小项目,需要更新一个窗体上的memo

原先使用的是event,经常会发现界面锁死,无响应了

后干脆使用message,postmessage不等待处理,直接返回,而sendmessage等待处理

当然使用sendmessage了。

由于该form是嵌入到一个tabsheet上的,原先的代码是

//创建baselist实例,嵌入到tabsheet中

frmClient := TfrmClient.Create(Self);

frmClient.BorderStyle := bsNone;

frmClient.Align := alClient;
tmpclient.LogReceiver:=frmClient.Handle;

frmClient.Parent := ts;
frmClient.Show;

测试时,发现,frmclient里面,无论如何,无法收到message

经调试才发现设置时的handle,即tmpclient.LogReceiver,和实际的handle不一样。

后才发现form设置parent属性时,是有可能更改本身的handle值的。

把setparent属性移动到取handle之前,即可。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据