MDI子窗口切换! 我想使打开的各个MDI子窗口名称显示在主窗口下的一排按扭上可快速切换,用delphi该怎么实现呢?就像wps office 2002的文件切换功能,在MDI窗口中。我搜索过以前的帖子但找不到具体作法,我比较笨,请说明具体作法! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MainForm.Next;具体指定一个就不知道了 我在窗体上放一个Panel,Panel上在放按扭来切换窗体,具体的代友怎么写呀!如果谁有例子请发到我的信箱来,谢谢。[email protected] TO: Nizvoo(会点Pascal)我按你的办法在创建窗体时创建一个书签,你的办法是可行的,但我写出来的代码执行时效果不是很好,请指点! 简单:用一个TabControl, 然后如此添加:AddObject;切换时用 MDIChildren[i].BringToForeground;MDIChildren[i].SetFocus;就可以了。 这两句代码要写在TabSheet1那个事件下面呀编译时这个BringToForeground总提示说没有定义MDIChildren[i].BringToForeground;MDIChildren[i].SetFocus; 设置你的主窗口的windowsmenu属性 to: gzyzljk(正龙剑客) 能说得详细点吗? 我现在已实现创建窗体时创建一个书签,怎么再将这个对应起来,即点书签时激活相对应的窗体。就像wps office 2002的文件切换功能,在MDI窗口中。请指点! 我现在已实现创建窗体时创建一个书签,怎么再将这个对应起来,即点书签时激活相对应的窗体。就像wps office 2002的文件切换功能,在MDI窗口中。请指点! 我现在已实现创建窗体时创建一个书签,怎么再将这个对应起来,即点书签时激活相对应的窗体。就像wps office 2002的文件切换功能,在MDI窗口中。请指点! TO:sherlock(泰坦尼克上的Jack)我把这句代码加在我程序中是可以切换,但可能我原先的语句写的不是很好,组合起来总是按扭和窗体名不对应,请指点。 在OnButtonClick事件中写:vari : integer;beginfor i := 0 to MDIChildCount -1 do beginif MDIChildren[i].tag = TButton(Sender).tag then beginMDIChildren[i].Show;break;end;当然前提是在你每创建一个MDIChild的时候就同时创建一个按钮,同时这个按钮的tag等于该子窗口的Tag.经试验,这种方法的速度很快. 搞不懂你的意思要速度的话auto create 要的时候show一下不行了 TO:sunware()我把你的代码加在我程序中是可以切换,但可能我原先的语句写的不是很好,组合起来总是按扭和窗体名不对应,如:如果我创建两个子窗体按下第一个书签变成调出第二个子窗体按下第二个书签变成调出第一个子窗体,如果我创建三个子窗体,第二、三问题如上,第一个窗体根本调不出来。请指点。 TO:sunware()你能给我个例子吗?[email protected] TO:sunware()能说一下用PageControl1作切换的方法吗? 用PageControl是不能切换MDIChild的.因为你如果设计了PageControl那么一定是把align设为alClient,那么MDIForm的Client区间就没有了,MDIChild放在什么地方呢?(另外,PageControl和MDIChild的设计目的都是差不多的,你既然选了PageControl那还要MDIChild干什么?)如果你只是对那几个标签叶感兴趣,那你可以用win3.1页下的TTabSet,程序部分基本和我给你的代码一样.只不过TTabset用的是Tstrings来保存每个页面的名称,所以你得另外再开一个数组用来放tag.不过,我对你程序界面的美感表示怀疑.其实如果你一定要用多窗口,那么还是按钮切换的方式比较好,因为这是microsoft自win95以来一直在使用的经典设计. TO:sunware()我是用PageControl来代替你的Panel和Button的,首先在主窗体上放一个toolbar在这个上面放个PageControl,然后在创建一个窗体时就创建一个相对应的TabSheet.我现在遇到的问题如下:如果我创建两个子窗体按下第一个书签变成调出第二个子窗体按下第二个书签变成调出第一个子窗体,如果我创建三个子窗体,第二、三问题如上,第一个窗体根本调不出来。请指点。 TO:sunware()代码寄给你了,收到了吗? 我就改了Main.pas,就把这个文件(5K大)寄给你了,请查收. 对了,差点忘了,这个程序有一个最大的Bug就是如果你关闭了一个子窗口,那么它对应的Tabsheet也应该被销毁(Destroy),但是在这个程序里我没有加入相关的处理.所以如果你关闭了子窗口,那么就再点上面的sheet就会出问题了.这个Bug和你问的问题不是同一个问题,所以就不在这次的讨论范围之内啦! Delphi7中的ComboBox无法显示sql server中返回的值 只有dcu文件,没有pas文件,注册后能否使用? 又一个奇怪问题,难道formcreat不是先执行吗? delphi中怎么定义一个静态数据对象? 我有一个数组,怎么样得到它的首地址 打印模版设计? 关于生成bmp文件的问题 串口短信息通讯哪里出了问题,在线等待! 我想定时将memo1中的内容写到一个文本中,并是递加的,不能将原记录清空? 各delphi高手,我想减少内存 那位知道广州去海南三亚有多远,一般乘坐什么交通工具 IDE遇到一个怪问题:new items对话框少了很多向导选项,请各位帮帮忙
具体指定一个就不知道了
具体的代友怎么写呀!如果谁有例子请发到我的信箱来,谢谢。
[email protected]
你的办法是可行的,但我写出来的代码执行时效果不是很好,请指点!
MDIChildren[i].BringToForeground;
MDIChildren[i].SetFocus;
就可以了。
编译时这个BringToForeground总提示说没有定义
MDIChildren[i].BringToForeground;
MDIChildren[i].SetFocus;
能说得详细点吗?
怎么再将这个对应起来,即点书签时激活相对应的窗体。
就像wps office 2002的文件切换功能,在MDI窗口中。
请指点!
怎么再将这个对应起来,即点书签时激活相对应的窗体。
就像wps office 2002的文件切换功能,在MDI窗口中。
请指点!
怎么再将这个对应起来,即点书签时激活相对应的窗体。
就像wps office 2002的文件切换功能,在MDI窗口中。
请指点!
我把这句代码加在我程序中是可以切换,
但可能我原先的语句写的不是很好,
组合起来总是按扭和窗体名不对应,请指点。
var
i : integer;
begin
for i := 0 to MDIChildCount -1 do begin
if MDIChildren[i].tag = TButton(Sender).tag then begin
MDIChildren[i].Show;
break;
end;当然前提是在你每创建一个MDIChild的时候就同时创建一个按钮,同时这个按钮的tag等于该子窗口的Tag.
经试验,这种方法的速度很快.
要速度的话auto create 要的时候show一下不行了
我把你的代码加在我程序中是可以切换,
但可能我原先的语句写的不是很好,
组合起来总是按扭和窗体名不对应,如:如果我创建两个子窗体按下第一个书签变成调出第二个子窗体按下第二个书签变成调出第一个子窗体,如果我创建三个子窗体,第二、三问题如上,第一个窗体根本调不出来。
请指点。
你能给我个例子吗?
[email protected]
能说一下用PageControl1作切换的方法吗?
(另外,PageControl和MDIChild的设计目的都是差不多的,你既然选了PageControl那还要MDIChild干什么?)如果你只是对那几个标签叶感兴趣,那你可以用win3.1页下的TTabSet,程序部分基本和我给你的代码一样.只不过TTabset用的是Tstrings来保存每个页面的名称,所以你得另外再开一个数组用来放tag.不过,我对你程序界面的美感表示怀疑.其实如果你一定要用多窗口,那么还是按钮切换的方式比较好,因为这是microsoft自win95以来一直在使用的经典设计.
我是用PageControl来代替你的Panel和Button的,
首先在主窗体上放一个toolbar在这个上面放个PageControl,
然后在创建一个窗体时就创建一个相对应的TabSheet.
我现在遇到的问题如下:
如果我创建两个子窗体按下第一个书签变成调出第二个子窗体按下第二个书签变成调出第一个子窗体,如果我创建三个子窗体,第二、三问题如上,第一个窗体根本调不出来。
请指点。
代码寄给你了,收到了吗?