请问一个多窗口问题,谢谢
1楼: 我开发一个多窗口的管理系统,在菜单里有一项wondow,在打开一个窗口时,如何记录在这个wondow选项里,其实delphi里有一个例子,但是我看了也没有看出在哪里加入的,请高手指点一下,谢谢 字串2 2楼: 分数不够,可以加呀,谢谢!
字串5
3楼: 不懂啊!是记录窗口的信息呢,还是怎么的! 字串5
4楼: 如打开一个《进货单》,在wondow菜单项里增加一个《进货单》,也就是记录打开什么窗体了 字串2 5楼: 是insert menu吧?如果是,就动态创建menu就可以了 字串5
6楼: 设置MDIForm的WindowMenu,其中被设置的MenuItem下面不知道为什么必须再加一个MenuItem才正常 字串1
7楼: 对呀,需要动态菜单才行,不知如何做,请高手们指点一下 字串5 8楼: // 创建Pages and PopupMenu 还指Menu的事件
procedure CreatePages(F:Tform;PC:TPageControl;PopupMenu:TPopupMenu;Event:TNotifyEvent);
var
Pages:TTabsheet;
Menu:TMenuItem;
begin
try
TControlShowHint(F);
Pages := TTabsheet.Create(Pc);
Pages.Caption := F.Caption;
Pages.Tag := F.Tag;
Pages.PageControl := Pc;
Pc.ActivePage := Pages;
Menu := TMEnuItem.Create(Application);
Menu.Caption := F.Caption;
Menu.Tag := F.Tag;
Menu.OnClick := Event;
ClareMenuChecked(PopupMenu);
Menu.Checked := true;
PopupMenu.Items[0].Add(Menu);
except
on e:exception do
showMessage(e.Message)
end;
end; 字串6
9楼: // Destroy pages and popup meuns
Function DestroyPages(Sender: Tobject;F:Tform;PC:TPageControl;PopupMenu:TPopupMenu):Integer;
var
i:integer;
begin
try
for i := PC.PageCount-1 downto 0 do
if PC.Pages[i].Tag=(sender as TForm).Tag then
PC.Pages[i].Free;
for i := PopupMenu.Items[0].Count-1 downto 0 do
if PopupMenu.Items[0].Items[i].Tag=(sender as TForm).Tag then
PopupMenu.Items[0].Items[i].Free;
if Pc.PageCount<>0 then
begin
for i := F.MDIChildCount-1 downto 0 do
if F.MDIChildren[i].Tag=Pc.ActivePage.Tag then
//if F.ActiveMDIChild.WindowState=wsMinimized then //多步产生错误
F.MDIChildren[i].BringToFront;
ClareMenuChecked(PopupMenu);
for i := PopupMenu.Items[0].Count-1 downto 0 do
if PopupMenu.Items[0].Items[i].Tag=Pc.ActivePage.Tag then
PopupMenu.Items[0].Items[i].Checked := True;
end;
except
on e:Exception do
showMessage(e.Message);
end;
Result := PopupMenu.Items[0].Count;
end; 字串3 10楼: 这里是用form,menu的tag属性来判断;在MainMenu 的window菜单项里添加动态创建的菜单就可以了。在关闭子form时调用删除过程就可以删除动态创建的菜单 字串8 11楼: 指定事件就是你切换MDI 子窗口的过程 字串2 12楼: 这样选择
Application.CreateForm(TRptBscdzd, RptBscdzd);
RptBscdzd.ShowModal; 字串1
13楼: 如果你的窗口的数量是固定的,可以预先将对应的菜单项加入
属性VISIBLE设为FALSE
到对应窗口打开后,用TAG之类的标志来判断哪一个项目可见VISIBLE设为TRUE 字串5
14楼: 如果你的多个窗口是MDIChild窗口的话,只需要在MainForm中设置WindowMenu就可以了 字串6 15楼: 我的是一个fsMDIForm主窗体,这个主窗体上有一个MainMenu1,其它窗体是fsMDIChild,我想打开一个子窗体《进货单》,在MainMenu1的window菜单项下增加一个《进货单》项,因为增加多个时,可以在这个window菜单项里直接去找
我在看delphi里的demos里的doc例子,也没有写什么代码,不知如何设置的 字串9 16楼: 谢谢各位,扬扬你说得没错,解决了 字串7