窗体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之前,即可。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。