在OnMouseDown事件里面记录鼠标位置,然后把Canvas.Pen.MoveTo(X, Y);然后在OnMouseUp事件里面记录新位置,Canvas.Pen.LineTo(X, Y);

解决方案 »

  1.   

    在MOUSEMOVE里。不过一定有闪烁,(估计的,没试验2)
      

  2.   

    看看DELHI里面图象处理那以章啊!!
      

  3.   

    机械工业出版社的delphi开发人员指南的关盘上有个不错的例子
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
      TForm1 = class(TForm)
        procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
      var
        x0,y0:integer;
        x1,y1:integer;
    {$R *.DFM}procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if Shift=[ssleft] then
      begin
        x0:=x;
        y0:=y;
        x1:=x;
        y1:=y;
      end;
    end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if Shift=[ssleft] then
      begin
        canvas.MoveTo(x0,y0);
        canvas.Pen.Mode:=pmNot;
        canvas.LineTo(x1,y1);
        canvas.MoveTo(x0,y0);
        canvas.Pen.Mode:=pmNot;
        canvas.LineTo(x,y);
        x1:=x;
        y1:=y;
      end;
    end;end.你把这整个单元复制过去, 好好研究吧, 不难的.给分吧,算是辛苦费吧.呵呵
    [email protected]
      

  5.   

    to shangshang:
       how to Select  the draw line ?  I want Click the line and select it then move it  , How to do ?