当前位置:主页>销售管理软件> 列表

form 在creat 的时候屏幕闪烁一下,请问如何处理 找速达3000进销存软件

销售管理软件版1楼: 我在form1中放置了panel1,在form2-creat的时候,将form2.parent:=form1.panel1.
在form1中调用form2的时候,感觉form2在屏幕上先闪一下,然后才能在panel1中正常显示.
请问:如何避免创建form2的时候闪烁一下!

2楼: 先禁用Form1的刷新机制,等Form2加载完成后在恢复刷新既可!
如下截获Window刷新消息:
...
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
...
procedure TForm1.WMPaint(var Message: TWMPaint);
begin
if 现在需要刷新 then
inherited;
end; 如超市管理系统软件

3楼: 请问,如何判断"现在需要刷新"!
能否给出详细代码?
我的程序如下
if form2<>nil then
form2.bringtofront
else
begin
form2:=tform2.create(self);
form2.parent:=form1.panel1;
form2.show;
end;

4楼: 视觉上的突现是没法消除的,本来就是从无到有的景像
try
LockWindowUpdate(panel1.handle);
if form2<>nil then
form2.bringtofront
else
begin
form2:=tform2.create(self);
form2.parent:=form1.panel1;
form2.show;
end;
finally
LockWindowUpdate(0);
end;

这样做其实肉眼也看不出太大的区别
但是如果你在当中加个
for i := 0 to 1000 do
begin
form2.visible := false;
form2.visible := true;
end;
的话就能看出明显的不同了

5楼: 帮顶!

╭=========================================╮

80G海量源代码,控件,书籍全免费狂下不停!

http://www.source520.com

╰=========================================╯

6楼: 可能是我表达的不太清楚.
我要解决的问题是,我的form2在creat的时候,先在整个屏幕闪一下,然后才在panel5中正常显示,能否让其在creat的时候,直接在panel5里面显示,避免在整个屏幕闪烁

销售管理软件版7楼: 是不是这种在整个屏幕闪烁的情况无法避免

8楼: form2 := TForm2.Create(panel1);
form2.Parent := panel1;
form2.Align :=alClient;
form2.Show;
没觉得全屏闪啊

9楼: 呵呵,我的form2为了占据panel1的整个空间,将起align属性设置为alclient了

10楼: 高手请指教一下呀

11楼: 啥意思啊?

12楼: 没看懂 如速达3000进销存软件

13楼: 把窗体隐藏先,等属性赋完了,再显示就成了噻,如果等的时间长了可以在画个假窗体骗下大家,嘻嘻

销售管理软件版14楼: 创建一个全局变量bNeedUpdate,并赋初值为True,仅当Form2创建且并未显示过程中改变该全局变量当前值为False来截获Windows刷新消息,否则一直该变量值为True采用Windows系统刷新机制。