DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: laidabin
今日帖子: 6
在线用户: 32
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 kinneng (kinneng) ★☆☆☆☆ -
盒子活跃会员
2018/1/16 13:27:53
标题:
发现 RX 10.2.2004 恢复了 D7 创建窗口的过程。 浏览:1927
加入我的收藏
楼主:

以前我在帖子说过,XE,DX 改变了窗口创建顺序。


D7 创建子窗口的顺序是先发送 WM_MDICREATE 消息通知父窗口要创建子窗口,等子窗口创建好之后,
再执行TCustomForm.DoCreate(即执行子窗口里面的FormCreate过程,除非它不存在),这顺序很合理的,
不管发生什么事,都要先通知父窗口。

XE,DX 很奇怪,如果子窗口里面有FormCreate过程,执行顺序跟 D7 的一样,
如果子窗口没有FormCreate过程,就先创建子窗口,执行TCustomForm.DoCreate,
然后才发 WM_MDICREATE 消息通知父窗口要创建子窗口,顺序明显倒置。

WM_MDICREATE 对我的 TMDIFixAndExtend 控件(http://bbs.2ccc.com/topic.asp?topicid=530941)非常重要,
因为最后才收到消息,包括屏蔽闪烁,屏蔽动画,重新定位和强制最大化等等功能全部失效。

我花了很多时间才发现 XE,DX 这个问题,之前的RX版本也有这个问题,而且很难做出判断,

然后又花了很多时间,想了很多办法,是不能靠版本来判断的,

经过大量的调试,发现在WM_MDICREATE处理时,D7 的子窗口的 FormState 标识为 fsCreating,
而 XE,DX 子窗口的 FormState 没有标识成 fsCreating,因为它的创建过程已经结束,
如果子窗口里面有FormCreate过程,FormState 才会标识为 fsCreating。

然后,我重新编程,抓紧最后机会,在子窗口画到屏幕之前,实现所有功能,虽然程序完全不同,但视觉效果一样,
子窗口创建时没有闪烁,没有动画,位置准确,自动最大化等等。

但是刚才尝试用 RX 10.2.2004 编译运行,显示AV错误,然后就打开CPU窗口,根本无法知道那里出错。

在单步调试发现,这个版本的子窗口创建过程,已经回归 WM_MDICREATE 消息之后,如果把子窗口当成已经创建,
自然是AV错误。

我把之前重新编的程序删掉,按最初 D7 那样处理,一切正常。

但我又发现,RX 10.2.2004 FormState 还是没有标识成 fsCreating,无法自动识别,换成 XE,DX 编译,
没有特别处理,功能照旧失效。

是不是BUG不敢说,但是情况就是这样,新版本还先看看再说。
----------------------------------------------
声明:本人不在论坛询问任何编程问题,请不要将我的帖子当成问题来回答。炒股一天,编程三年,不浪费时间了。 经常在外面,没空,不要找我..
作者:
男 kinneng (kinneng) ★☆☆☆☆ -
盒子活跃会员
2018/1/16 13:44:34
1楼: 本来没兴趣鼓捣,发现日历控件有一个问题,也要升级一下了

TLunarCalendar的PrevMonth属性,因为没有跨年度计算农历月,一些年份取不到前一年的月份数据,所以显示“未知”,
现在已经改好,等有空编一个程序,把几万年跑一遍,没问题再发。
----------------------------------------------
声明:本人不在论坛询问任何编程问题,请不要将我的帖子当成问题来回答。炒股一天,编程三年,不浪费时间了。 经常在外面,没空,不要找我..
作者:
男 a5824 (Return) ★☆☆☆☆ -
普通会员
2018/1/16 14:48:29
2楼: 什么时候才能像你这么优秀!
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2018/1/16 18:48:51
3楼: 可以去marco cantu的blog,或者bugreport去问一下。照理说VCL已经很成熟了,不应该有这样的问题,也许是他们遇到过什么麻烦,后来又解决了。。。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 xlonger (xlonger) ★☆☆☆☆ -
普通会员
2018/1/17 17:58:06
4楼: 楼主 介绍一下 炒股的经验,最近 比特币挺火,有没有投资?
----------------------------------------------
我打的是酱油,而不是别的什么油。
我灌的是口水,而不是别的什么水。
我聊的折腾不是那个不折腾的折腾。
我说的阿娇不是那个邓玉娇的阿娇。
3个代表,6个为什么,9个肠胃炎。
D性强的领导干部都不喜欢热比娅。
我特别要讲的是,屁民网黄色论坛是我经常上网必选的 网站之一
作者:
男 yxsoft (yxsoft) ★☆☆☆☆ -
盒子活跃会员
2018/1/17 19:19:53
5楼: 有个oldcreate属性的吧,记得
----------------------------------------------
Great!
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/1/18 9:07:16
6楼: 我听说 比特币 开始大跌了。
也就是 火过头了。
到了 割羊毛的时候了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 kinneng (kinneng) ★☆☆☆☆ -
盒子活跃会员
2018/1/18 22:51:56
7楼: 没玩比特币
----------------------------------------------
声明:本人不在论坛询问任何编程问题,请不要将我的帖子当成问题来回答。炒股一天,编程三年,不浪费时间了。 经常在外面,没空,不要找我..
作者:
男 kinneng (kinneng) ★☆☆☆☆ -
盒子活跃会员
2018/1/21 21:08:49
8楼: 我关心是控件算出来的数据准不准,这个月31号有月全食,找网上文章看了时间,相差不到2分钟,还是很准的,30号是月亮过近地点,离地球最近,所以是超级月亮。
此帖子包含附件:
JPEG 图像
大小:345.3K
----------------------------------------------
声明:本人不在论坛询问任何编程问题,请不要将我的帖子当成问题来回答。炒股一天,编程三年,不浪费时间了。 经常在外面,没空,不要找我..
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行85.9375毫秒 RSS