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