创建窗体,为什么屏幕闪动很厉害?

qdmis 2005-05-17 11:17:33
procedure ShowFormInForm(
ParentForm:TForm;FormClass:TFormClass;SB:TStatusBar;PnlNO:Integer);overload;
var
iFormsCount:Integer;
Form:TForm;
begin
//检测是否已经有对应窗体类的实例,如果有,则不创建,仅仅Show出来即可
for iFormsCount:=0 to Screen.FormCount-1 do
begin
if Screen.Forms[iFormsCount].ClassType=FormClass then
begin
Screen.Forms[iFormsCount].Show;
Exit;
end;
end;

//要想将新窗体呈现在已有窗体之中,则:
//要指定其Parent为已经有的窗体,你必须指明Parent是哪个个父窗体
try
Screen.Cursor:=crHourGlass;
Form:=FormClass.Create(ParentForm);
Form.Parent:=ParentForm;
Form.Align:=alClient;
Form.BorderStyle:=bsNone;
Form.Visible:=True;
finally
Screen.Cursor:=crDefault;
end;
end;
...全文
143 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovebaivg 2005-05-17
  • 打赏
  • 举报
回复
使用这样好了
Screen.Forms[iFormsCount].BringToFront
lovebaivg 2005-05-17
  • 打赏
  • 举报
回复
这个事件是写在哪里的,是在Timer下的吗?
qdmis 2005-05-17
  • 打赏
  • 举报
回复
没人知道吗?

自己顶
qdmis 2005-05-17
  • 打赏
  • 举报
回复
还是不行。不能取掉exit
bob008 2005-05-17
  • 打赏
  • 举报
回复
Exit; --------------???去掉这句
wintergoes 2005-05-17
  • 打赏
  • 举报
回复
up
godear 2005-05-17
  • 打赏
  • 举报
回复
这样好吗? 直接使用
if assigned(formclass) then formclass.show
qdmis 2005-05-17
  • 打赏
  • 举报
回复
自己顶一下
stevenpeng 2005-05-17
  • 打赏
  • 举报
回复
代码写得有点怪,PASTE出来的代码太少

你试试LockWindowUpdate
纯冰糖 2005-05-17
  • 打赏
  • 举报
回复
强制刷新一下,Invalidate();

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧