procedure TForm1.imgMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
    if ts then img.Canvas.LineTo(X,Y);
end;procedure TForm1.imgMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ts:=True;
img.Canvas.MoveTo(X,Y);
end;

解决方案 »

  1.   

    procedure TForm1.imgMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      ts:=True;
      x1 := X;
      y1 := Y;end;
      
      

  2.   

    参考一下DELPHI里带的DEMO 吧
    最好写一个DrawShape过程
    在MOUSEDOWN里初始化起始点
    MOUSEMOVE里
          DrawShape(StartPos,LastPos,pmNotXor);
          LastPos:=Point(x,y);
          DrawShape(StartPos,LastPos,pmNotxor);
    MOUSEUP里
      if ts then
      begin
        EndPos:=Point(x,y);
        Drawing:=false;
      end;
      

  3.   

    在MouseDown事件中初始化起始点即可
      

  4.   

    在MouseDown事件中初始化起始点即可,并且ts变量初始应为false;
      

  5.   

    在MouseDown事件中初始化起始点即可,并且ts变量初始应为false;