Delphi XE8 Form.OnShow的一个小问题


本文整理自网络,侵删。

 遇到这样一个问题,利用MainForm的OnShow事件,来显示LoginForm:
procedure TMainForm.FormShow(Sender: TObject);
begin
  LoginForm.Show;
end;
运行的显示效果是预想的,运行应用,直接显示了LoginForm,但发现,Edit无法弹出VirtualKeyboard.
如果我直接显示LoginForm,则没有问题,那说明LoginForm只是在MainForm.OnShow事件中显示,才会这样。
硬着头皮看了一下TForm的代码,运气还不错,很快找到解决方法。原来,在
procedure TCommonCustomForm.Show方法中,先执行了OnShow事件,然后又执行了Activate方法。
即在OnShow事件执行后,再执行的OnActivate事件。


原因找到,解决方法就不难了。

一种方法是改FMX.Forms的代码,将DoShow与Activate这两行换一下次序。另外一种方法,就是不改代码,而是利用Form.OnActivate事件来显示LoginForm。当然,只有傻瓜才会去改代码来解决这个问题。


http://blog.sina.com.cn/s/blog_44fa172f0102vf7w.html

相关阅读 >>

Delphi 获取硬盘序列号(ide,sata,scsi)

Delphi httpclient async异步获取网页代码

Delphi 创建一个大小不可改变的窗体,通用模板

Delphi windows 编程[6] - 学习窗体生成的过程六: 最终的代码!

Delphi 检查当前用户权限

Delphi 根据经纬度计算地球上两点之间的距离

Delphi 批量日期格式化

Delphi的流操作的语法

Delphi之猥琐的webserver实现

Delphi中用ado连接加密access数据库

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...