1,利用消息限制窗体的大小。不是说拽窗体的边可以拽很远,但是放开之后回到限定范围那样,是要到限定范围那样就不能在继续拖动边了
2,重画的时候
tempbmp:Tbitmap;
tempbmp.canvas.draw();
然后当窗体大小变化的时候重新画的时候怎么把上次画的弄没啊?

解决方案 »

  1.   

    你处理WM_SIZE消息,判断大小。如果大小超过范围就退出消息处理看看
      

  2.   

    恩,处理WM_SIZE消息,大小也能判断了,但是我不会限制他可以继续往外拽的动作啊
    就是象QQ那样,虚线不能超过了可以设定的范围。
    第二个问题解决了
      

  3.   

    procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
      NewHeight: Integer; var Resize: Boolean);
    begin
      if NewHeight>=300 then
      NewHeight:=300;
      if NewWidth>=400 then
      NewWidth:=400
    end;
      

  4.   

    TO CLL007:
    这样虚线可以拽出很远,我要QQ那种效果的
      

  5.   

    procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
      NewHeight: Integer; var Resize: Boolean);
    begin
    //右边
    leftbmp.LoadFromFile('c:\125\cell_leftline.bmp');
    Canvas.FillRect(rect(ClientWidth-leftbmp.Width,0,form1.ClientWidth,NewHeight));
     k:=0;
     j:=form1.ClientHeight div leftbmp.Height;
     for i:=0 to  j do
    begin
    form1.Canvas.Draw(NewWidth-leftbmp.Width,k,leftbmp);
    k:=k+leftbmp.Height;
    end;
    这是一段代码,大家看可行吗?