如何在打開Mdi窗口時主窗體的MainMeun增加一個菜單按扭
如何在打開Mdi窗口時主窗體的MainMeun增加一個菜單按扭
主窗體的MainMenu有
XXXX XXXXX Windows
XXXX XXXX
XXXX XXX
XXXX XXXX
在Windows的MenuItem下 增加一個以MDI窗體的名的MenuItem
點擊相關MenuItem 關聯的MDI窗體會顯示到最前面
請高手指教!!!!
[解决办法]
//TForm1 MDI主窗体类
//TForm2 MDI子窗体类
procedure TForm1.mFormClick(Sender: TObject);
var
FormName : string;
begin
FormName := TMenuItem(Sender).Caption;
TForm2(Form1.FindComponent(FormName)).Show;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
M : TMenuItem;
begin
MainMenu1.AutoHotkeys := maManual;
with TForm2.Create(self) do
begin
M := TMenuItem.Create(self);
M.Caption := Name;
M.OnClick := mFormClick;
MainMenu1.Items[2].Add(M);
Show;
end;
end;
[解决办法]
procedure OpenForm(FormClass: TFormClass; var fm; AOwner: TComponent);
var
i:integer;
Child:TForm;
begin
for i:= 0 to Screen.FormCount-1 do
if Screen.Forms[i].ClassType=FormClass then
begin
Child:=Screen.Forms[i];
if Child.WindowState=wsMinimized then
ShowWindow(Child.handle,SW_SHOWNORMAL)
else
ShowWindow(Child.handle,SW_SHOWNA);
if (not Child.Visible) then Child.Visible:=True;
Child.BringToFront;
Child.Setfocus;
TForm(fm):=Child;
exit;
end;
Child:=TForm(FormClass.NewInstance);
TForm(fm):=Child;
Child.Create(AOwner);
Child.Show;
end;