当时我用VC做的onmousedown记下坐标。
onmousemove拖拉鼠标到下一次左击记下另一个坐标,过程中不断重画(XOR)

解决方案 »

  1.   

    var
      MDown:Boolean=False;
      SX,SY,EX,EY:Integer;
    procedure TForm1.FormActivate(Sender: TObject);
    begin
      Paintbox1.Canvas.Pen.Mode:=pmXor;
      Paintbox1.Canvas.Pen.Style:=psDot;
    end;procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      MDown:=True;
      SX:=X;
      SY:=Y;
      EX:=X;
      EY:=Y;
      PaintBox1.Canvas.Polyline([Point(SX,Sy),Point(SX,EY),Point(EX,EY),Point(EX,SY),Point(SX,Sy)]);
    end;procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      MDown:=False;end;procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if MDown then
      begin
        PaintBox1.Canvas.PolyLine([Point(SX,Sy),Point(SX,EY),Point(EX,EY),Point(EX,SY),Point(SX,Sy)]);
        EX:=X;
        EY:=Y;
        PaintBox1.Canvas.Polyline([Point(SX,Sy),Point(SX,EY),Point(EX,EY),Point(EX,SY),Point(SX,Sy)]);
      end;
    end;