如何让子窗体不顶到里面
而只是象工作区那么大

解决方案 »

  1.   

    主窗體MainForm中加一個panel控件
    在子窗體創建事件中加
      self.parent:=MainForm.panel1;
      

  2.   

    问题已经解决
    谢谢各位关注特将代码上传,供大家观看unit fChildForm;interface
    uses Forms,fMenuAboutForm,Menus,fIAddDeleteMenu,fIIUD,Dialogs,messages,fINextPrev;type
    TChildForm = class(TForm,IIUD)
    private
      state:integer;
      lastLeft:integer;
      lastTop:integer;
      lastWidth:integer;
      lastHeight:integer;
    public
      friendMenuItem : TMenuItem;
      parent : IAddDeleteMenu;
      constructor create(var theParent :IAddDeleteMenu);
      destructor destroy();  procedure notify(Sender: TObject);virtual;
      procedure closeOperation(Sender: TObject; var Action: TCloseAction);virtual;
      procedure addVO(); virtual;
      procedure updateVO(); virtual;
      procedure deleteVO(); virtual;  procedure moveNext(); virtual;
      procedure movePrev(); virtual;  procedure WndProc(var message:Tmessage);override;end;
    implementationprocedure TChildForm.WndProc(var message:TMessage);
    begin   if (message.Msg = WM_SYSCOMMAND) and ((message.WParam = 61488) or (message.WParam = 61490)) then
           begin
              if state = 0 then //原壮
                 begin
                    //存储原尺寸
                    lastLeft := self.Left;
                    lastTop := self.Top;
                    lastWidth := self.Width;
                    lastHeight := self.Height;
                    //设置最大尺寸
                    self.Width := parent.getWorkWidth ;
                    self.Height := parent.getWorkHeight ;
                    self.Left := 0;
                    self.Top := 0;
                    state := 1;//状态为最大化
                 end
              else
                 begin
                    self.Left := lastLeft;
                    self.Top := lastTop;
                    self.Width := lastWidth;
                    self.Height := lastHeight;
                    state := 0;//状态为原态
                 end;
           end
       else
          inherited WndProc(message);
    end;