显示窗口 ( 积分: 100 )

  • 主题发起人 主题发起人 chcsl
  • 开始时间 开始时间
C

chcsl

Unregistered / Unconfirmed
GUEST, unregistred user!
请教高手:

下面这两段代码在功能和性能上有什么不同?

对于第一段,我是从别人那学的,能通过编译,但运行时没有窗口显示,为什么?

procedure TMainForm.N30Click(Sender: TObject);
var
newform:Tctyhglform;
i,flag:integer;
begin
//flag=0表示该窗体不存在
flag:=0;
for i:=0 to mainform.MDIChildCount do
begin
// 通过对窗体标题判断窗体是否存在
if mainform.MDIChildren.Caption='用户管理' then
begin
//如果窗体已存在,则恢复窗体
SendMessage(mdichildren.Handle, WM_SYSCOMMAND, SC_restore, 0);
mdichildren.Show;
mdichildren.Enabled:=true;
flag:=1;
//退出循环
break;
end;
end;
//若窗体不存在,则创建窗体
if flag=0 then
begin
newform:=Tctyhglform.Create(application);
newform.Caption:='用户管理';
end;
end;


procedure TMainForm.N31Click(Sender: TObject);
begin
ctmmglform.Show;
end;

谢谢
 
1,
主窗囗
formstryle:fsMDIFormf
子窗囗
formstryle:fsMDIChild
2,
newform.Caption:='用户管理';
后面加上
newform.show
3,
通过对窗体标题判断窗体是否存在
改成通过判断窗囗名称是否存在.更好些
 
按你的指点,子窗口可以在父窗口中显示,但全部都出来,关也关不了,怎么处理?
 
if MDIChildren.WindowState = wsMinimized then
MDIChildren.Perform(WM_SYSCOMMAND, SC_RESTORE, 0)
else MDIChildren.BringToFront;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
S
回复
0
查看
888
SUNSTONE的Delphi笔记
S
I
回复
0
查看
344
import
I
S
回复
0
查看
766
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部