ITXP365(智码IT网)

分享电脑知识,传播IT技巧

致敬爱学习的您,祝您访问愉快!

Delphi语言实现在Form完成Show后再处理逻辑


发布:智码IT网   阅读:
最近用Delphi做项目,本来希望等到窗口show了以后,再处理一些逻辑,比如弹窗,于是写了如下代码:
procedure TForm1.FormShow(Sender: TObject);
begin
  ShowMessage('期望弹窗在Form显示出来以后才出现');
end;

运行发现,弹窗其实会在Form显示出来之前就弹出。查阅资料和研究发现,按以下步骤可以实现该需求。


1、定义常量
const
  UM_CHECKFIRSTRUN = WM_USER + 200;

2、定义消息AfterShowView,并编写处理逻辑
procedure AfterShowView(var Message: TMessage); message UM_CHECKFIRSTRUN;
处理逻辑如下:
procedure TForm1.AfterShowView(var Message: TMessage);
begin
  ShowMessage('111');
end;

3、在Form的Show或Create事件中Post消息

procedure TForm1.FormShow(Sender: TObject);
begin
  PostMessage(Handle, UM_CHECKFIRSTRUN, 0, 0);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  PostMessage(Handle, UM_CHECKFIRSTRUN, 0, 0);
end;

上一篇:没有了
下一篇:没有了

© 2001-智码IT网 www.itxp365.com版权所有

蜀ICP备2021001527号