请教MDI窗口的问题(50分)

  • 主题发起人 主题发起人 stjsq
  • 开始时间 开始时间
S

stjsq

Unregistered / Unconfirmed
GUEST, unregistred user!
在MDI窗口中,
1.如何判断某个MDIChild窗口已经被打开?
2.如何将一个已经运行的MDIChild窗口提高最上层?
谢谢!
小弟分数不多,见谅:)
 
if not assigned(form1) then
...
 
能否详细一点?谢谢
 
1。好象的判断WindowsState
2. Mdichild.bringtofront
 
1.例程如下:

type
TMyMDIChild = class(TForm)
...
procedure FormCreate(...);
procedure FormClose(...);
public
class function InstanceCount: Integer;
end;

implementation

const
InstCount: Integer = 0;

procedure TMyMDIChild.FormCreate(...);
begin
Inc(InstCount);
...
end;

procedure TMyMDIChild.FormClose(...);
begin
Dec(InstCount);
...
end;

class function TMyMDIChild.InstanceCount: Integer;
begin
Result := InstCount;
end;
////////////////////////////////////////

type
TMainForm = class(TForm)
...
public
function CreateMDIChild: TMyMDIChild;
...
end;

....

function TMainForm.CreateMDIChild: TMyMDIChild;
begin
if TMyMDIChild.InstanceCount > 0 then
ShowMessage('MDI Child has opened!')
else Result := TMyMDIChild(Application);
end;

2。MDIChild.BringToFront
 
我用菜单屏蔽功能实现重复打开MDIForm。
 
多人接受答案了。
 
后退
顶部