Delphi10.1下FormCreate中动态创建的控件在移动端显示不对的解决办法

问题描述:最近由于项目原因,需要动态创建控件到窗体上,我原本的处理方式是在FormCreate里创建,FormResize里处理尺寸变换。PC端没有问题,编译到Android端的时候发现没有按照预想的大小显示,而是按照传入的大小和位置显示了。

     跟踪发现,初始化时,在PC端事件调用顺序为:FormCreate -> FormResize,其他继承自TControl的Resize不会调用,而到了Android端调用顺序则不同,它会先从外到内一层层调用控件的Resize,然后调用FormCreate,之后是FormResize,也就是说如果动态创建的控件作为窗体上另一个控件的子控件,并且这个控件的Resize没有被触发的话,我动态创建的控件的Resize也就没法触发。

    遇到这种情况,我的解决办法是手动触发包裹动态创建的控件的父控件的Resize,触发方式或者改变其大小或者改变其对齐方式,均可。

   以上纯属个人经验,如有不对,欢迎批评指教。


  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值