我如何使用橡皮筋的方式在一块画布上画一个矩形,需要源码?谢谢!

解决方案 »

  1.   

    我刚写的,乱七八糟的,仅供参考var
      Form1: TForm1;
      ptStart: TPoint;
      b_mousedown: Boolean = false;
      PreRect: TRect;implementation{$R *.dfm}procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      b_mousedown := true;
      ptStart.X := X;
      ptStart.Y := Y;
    end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if b_mousedown then
      begin
        Canvas.Pen.Color := clWhite;
        Canvas.Rectangle(PreRect);
        Canvas.Pen.Color := clBlue;
        Canvas.Pen.Style := psDot;
        Canvas.Rectangle(ptStart.X, ptStart.Y, X, Y);
        PreRect.TopLeft := ptStart;
        PreRect.BottomRight.X := X;
        PreRect.BottomRight.Y := Y;
      end;
    end;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      b_mousedown := false;
      Canvas.Pen.Color := clBlack;
      Canvas.Pen.Style := psSolid;
      Canvas.Rectangle(PreRect);
      SetRectEmpty(PreRect);
    end;procedure TForm1.FormPaint(Sender: TObject);
    begin
      Canvas.Brush.Color := clWhite;
      Canvas.Rectangle(0, 0, WIDTH, HEIGHT);
    end;end.