主窗体中用showmodal,每次只能打开一个窗体,如果用SHOW,可以同时打开几个子窗体,则打开的子窗体总不能在最前面请问怎样可以同时打开多个窗体,而又能保证打开的子窗体在最前面?

解决方案 »

  1.   

    如果子窗体是form2,在
    form2.show;
    之后可以用
    form2.bringtofront;
    可以把form2放到前面,不过点主窗体又会回去的。
    你还可以
    form1.Visible := false;
    直到子窗体close时在改回true
      

  2.   

    给你来段代码,在CreateParams事件里面写下这段API
    implementation
    uses
    ShellApi;
    {$R *.dfm}procedure TForm1.CreateParams(var Params: TCreateParams);
    begin
      inherited;
        Params.EXStyle := Params.ExStyle or WS_EX_TOOLWINDOW;//没有这段,在点显示桌面时就不能保证ontop了
      Params.WndParent := GetDesktopWindow; // 重新定义Parent对象句柄,看你的需要了。
    end;
      

  3.   

    楼上的兄台,好象没有CreateParams这个事件啊?55555555,还是  没搞定
      

  4.   

    你是要一直在前,像showmodal一样,还是就是在显示的时候在前呢?
      

  5.   

    把窗体的属性内设成在最前啊
    以前用过,现在没有DELPHI,应该可以的