F fatlu Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-25 #1 我正在做一个登录窗口,窗口中放有一个IMAGE控件,并设置了一位图。IMAGE上还有几个EDIT和LABLE用作用户名和密码输入框。但发现当窗口刚开始运行时,屏幕是先出现两个EDIT才出现IMAGE的图片,非常不美观!我见许多大大做的登录窗口都没这个现象阿?!希望大家帮忙解决一下这个问题。。。。
我正在做一个登录窗口,窗口中放有一个IMAGE控件,并设置了一位图。IMAGE上还有几个EDIT和LABLE用作用户名和密码输入框。但发现当窗口刚开始运行时,屏幕是先出现两个EDIT才出现IMAGE的图片,非常不美观!我见许多大大做的登录窗口都没这个现象阿?!希望大家帮忙解决一下这个问题。。。。
小 小雨哥 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-25 #2 image 控件上放其它控件出现闪烁,偶想应该没有办法可以解决。所以偶也听听。
W wr960204 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-29 #5 显示之前 Image1.ControlStyle:=Image1.ControlStyle + [csParentBackground];
F fatlu Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-01 #6 To:wr960204 你好,我用的是Delphi6,怎么好像找不到相关csParentBackground声明?程序老是报错。。。。
小 小雨哥 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-01 #7 Delphi7 新加的控件风格,用来支持 XP 以上操作系统的主题服务。但用在这里大约没用。
W wr960204 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-02 #8 不可能找不到声明,从DELPHI1开始就由这个csParentBackground。 在Controls单元
小 小雨哥 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-02 #9 那就是 Borland 公司的不是了,不但在 Delphi5 企业版里删掉了这个东西,还连带着在 帮助文件里都隐藏掉。真是绝了。 到了 Delphi7 ,Borland 公司却说: New TControlStyles: csParentBackground. 意思是说:一个新添加的风格标志。并且说: only applicable when Themes are Enabled in applications on Windows XP. 意思是:只是为了让程序支持 Windows XP 的主题服务。 该死的 Borland ,Delphi1 就有的东西,到了 Delphi7 还拿出来冒充新货。
那就是 Borland 公司的不是了,不但在 Delphi5 企业版里删掉了这个东西,还连带着在 帮助文件里都隐藏掉。真是绝了。 到了 Delphi7 ,Borland 公司却说: New TControlStyles: csParentBackground. 意思是说:一个新添加的风格标志。并且说: only applicable when Themes are Enabled in applications on Windows XP. 意思是:只是为了让程序支持 Windows XP 的主题服务。 该死的 Borland ,Delphi1 就有的东西,到了 Delphi7 还拿出来冒充新货。
W wr960204 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-02 #10 是我写错了因该是csAcceptsControls
小 小雨哥 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-03 #11 嗯。csAcceptsControls 应该也不是处理这个现象的。我以为,使用 image 控件本身的思 路有问题,虽然在快的机器上不会有他所说的现象,但他本身是 TGraphicControl 类的控 件,这种控件不具有局部重画能力,所以处理起来就比较困难。如果强行需要这样做,就 应该直接从 TGraphicControl 派生出自己的东西,在整个图像显示出来前,完成内部绘图 工作。比较可取的做法是放弃使用 image 控件这个思路,使用图形预装载技术完成界面的 初始化(Demo http://ale.xicp.net/upload/LoginT.rar 保留 7 天)。这个做法既简单 又实用。由于我的机器太快,Demo 效果在慢速机器上到底如何,我也不知道。
嗯。csAcceptsControls 应该也不是处理这个现象的。我以为,使用 image 控件本身的思 路有问题,虽然在快的机器上不会有他所说的现象,但他本身是 TGraphicControl 类的控 件,这种控件不具有局部重画能力,所以处理起来就比较困难。如果强行需要这样做,就 应该直接从 TGraphicControl 派生出自己的东西,在整个图像显示出来前,完成内部绘图 工作。比较可取的做法是放弃使用 image 控件这个思路,使用图形预装载技术完成界面的 初始化(Demo http://ale.xicp.net/upload/LoginT.rar 保留 7 天)。这个做法既简单 又实用。由于我的机器太快,Demo 效果在慢速机器上到底如何,我也不知道。
Q qnaqbgss Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-05 #12 你试一下这个: 在FORM的ONCREATE事件中加入: form1.doublebuffer:=true;
小 小雨哥 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-11 #14 我测试了直接从 TGraphicControl 派生类,完成内部绘图后显示整版图片,程序的 Demo 在下面链接里,包括上面那个演示,机器慢的试试看,还会不会再闪烁: http://ale.xicp.net/upload/Check.rar (这是个搞笑界面,符合 UI 规范,但不可当真, 同样保留一周时间后删除)
我测试了直接从 TGraphicControl 派生类,完成内部绘图后显示整版图片,程序的 Demo 在下面链接里,包括上面那个演示,机器慢的试试看,还会不会再闪烁: http://ale.xicp.net/upload/Check.rar (这是个搞笑界面,符合 UI 规范,但不可当真, 同样保留一周时间后删除)
F fatlu Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-16 #15 首先感谢小雨哥对这个问题积极回应! 防止Timage以及窗口的闪烁的确是可以用form.doublebuffer := True来实现。 使用前后的效果还是很明显的,这个我在提出这个问题前都已经用到。但是令我不解的是 加上这条语句后,依然是有明显的闪烁。听了mystudy的建议,我将图片的大小缩小,结果问题解决了!我原来的图片大小为800*600,现在改为400*300,结果没有之前的闪烁!因此这个问题的答案应该是mystudy所说,但是为了感谢小雨哥的热情支持,各位不介意我多给一点分吧?
首先感谢小雨哥对这个问题积极回应! 防止Timage以及窗口的闪烁的确是可以用form.doublebuffer := True来实现。 使用前后的效果还是很明显的,这个我在提出这个问题前都已经用到。但是令我不解的是 加上这条语句后,依然是有明显的闪烁。听了mystudy的建议,我将图片的大小缩小,结果问题解决了!我原来的图片大小为800*600,现在改为400*300,结果没有之前的闪烁!因此这个问题的答案应该是mystudy所说,但是为了感谢小雨哥的热情支持,各位不介意我多给一点分吧?