环境:DELPHI6.0 + EHLIB2.0+ACCESS 写一个进销存系统.
1.我用的窗口都是MID子窗口,约有20个吧.当我打开其中任何一个MID子窗口都很正常,问题就是,当我开了5个窗口后,再到菜单上去开其中一个窗口时,总显示不出来,实际上窗口已经存在只是在后面看不到,就是调不到当前窗口来,要把当前窗口一一的关掉,才看得到.请问:怎么把已存在的子窗口调到最前面来.?
2.DELPHI有自带一个MDI程序示例,有子窗口排列的功能.我就是看不懂例程,我想在我的软件里也要上这种MID子窗口排列的功能,请详告之,有源码邮过来看看更好,

解决方案 »

  1.   

    对前面的form
    WindowState := wsMinimized;
    如果不行,把他们关了吧
      

  2.   

    在看看这个:(form置顶)
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      SetWindowLong(Application.Handle,GWL_ExSTYLE,WS_EX_TOOLWINDOW);
    end;
      

  3.   

    MDIChildren[1].BringToFront;
    MDIChildren[1].SetFocus;
      

  4.   

    1.我用的窗口都是MID子窗口,约有20个吧.当我打开其中任何一个MID子窗口都很正常,问题就是,当我开了5个窗口后,再到菜单上去开其中一个窗口时,总显示不出来,实际上窗口已经存在只是在后面看不到,就是调不到当前窗口来,要把当前窗口一一的关掉,才看得到.请问:怎么把已存在的子窗口调到最前面来.?re:你是不是用了什么函数?按理说你,打开自窗体就是createform和show的过程,你按两遍打开子窗体,应该开两个字窗体啊。2.DELPHI有自带一个MDI程序示例,有子窗口排列的功能.我就是看不懂例程,我想在我的软件里也要上这种MID子窗口排列的功能,请详告之,有源码邮过来看看更好,re:我记得ActionList可以
      

  5.   

    if Node.Text ='供货商属性' then
       begin
         if ViewProvider.Enabled then
         begin
           ViewProviderExecute(Sender);
         end
         else
         begin
           MessageDlg('您没有访问"供货商属性"的权限,请与权限管理员联系添加!', mtWarning ,[mbYes],0);
         end;
       end;procedure TMainForm.ViewProviderExecute(Sender: TObject);
    begin
      try
        Screen.Cursor := crSQLWait;
        if not Assigned(FM_Provider) then
        begin
          FM_Provider := TFM_Provider.Create(Application);
        end;
        if not FM_Provider.Active then
        begin
          FM_Provider.Show;
        end;
        FM_Provider.WindowState :=wsMaximized;
      finally
        Screen.Cursor := crDefault;
      end;
    end;procedure TFM_Provider.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := CaFree;
      FM_Provider :=nil;
    end;ActionList中Window有一些常用的子窗体排列方式
      

  6.   

    ViewProvider 是在ActionList自定义的TAction用于控制用户权限