还是动态创建窗体的闪烁问题,有请各位知道的朋友。(50分)

  • 主题发起人 主题发起人 340340
  • 开始时间 开始时间
你首先先确定是那部分代码引起闪烁的,把这段代码屏蔽掉,或修改下试试。
MyTestFrm1 := TMyTestFrm1.Create(Self);
MyTestFrm1.Parent := MainFrm.PanelMain; -->> MyTestFrm1.Parent := nil;
MyTestFrm1.BorderStyle := bsNone;
MyTestFrm1.Align := alClient;

MyTestFrm2 := TMyTestFrm2.Create(Self);
MyTestFrm2.Parent := MainFrm.PanelMain; -->> MyTestFrm2.Parent := nil;
MyTestFrm2.BorderStyle := bsNone;
MyTestFrm2.Align := alClient;
 
按照我最后说的方法再试试看,这可是终极必杀技了(呵呵:)开玩笑的,不过应该管用才对),要是还是不起作用可太神奇了!
要是还不行建议你把Delphi重新安装一次,说不定是你的Delphi编译器出了问题...
 
哪个都闪。。。超级郁闷。。。一段段地注释尝试。。。主窗体中OnCreate哪怕只有一个动态创建的,就闪,动态创建几个就闪几次。。。最后的办法。。。怎么加延时?谢谢几位顶力帮助,谢谢
 
最简单的办法加个Timer控件,
在OnTimer事件中写:
blRefrsh := True;
Form.Show;
Form.Update;
 
呵呵,你动态创建的Form是什么类型的?Normal?OnTop?,我这边试过Normal是没有问题的。
 
normal。。。WindowStated设置为wsMinimized(不设置的话,部分窗体不能占满。。。有些却能。。。奇怪),而且最郁闷是有几个创建了,点了节点能显示,有个窗体非得先去写行Show,否则就不行。。明明是创建了的。。。
 
加了控件设置过了,居然还是老样子。。。。。
 
唉!看来是没的救了...默哀1分钟...
 
。。。不介意我多等上一段时间。,直到把这问题解决吧?。。。实在浪费不起积分了。。。
 
呵呵:)我也想要知道更好的解决办法!
 
郁闷的是即使我把WindowState改回Normal,一样也是刚运行时闪烁。。。
 
你在节点事件中做了什么?我觉的跟这个可能有关系,查查。
如果是节点的OnSelect事件中Show子窗体,节点在创建的时候有可能触发OnSelect事件,
闪烁也是很正常的事了。
 
经过多次试验。。。发现无论如何都闪。。。机器好点的很看不出来,慢点的就明显了。。。而且控件越多,或者用到Image控件加了图片的,就更闪了。。。
 
to nicai_wgl:
不关节点的事,试验过了,机器差点,动态创建的窗体上控件多点,尤其是加了图片就闪。。。估计是因为每次动态创建窗体到主窗体的Panel容器中时都重绘了的关系。。。
 
恩。。。谢谢各位热心帮助了。这个问题。。。看来暂时米有办法。。。谢谢大家。
 
多人接受答案了。
 
后退
顶部