自己画吧
在画上之前先把原先画上的用背景色画一遍如有问题,请GoOn

解决方案 »

  1.   

    OnMouseDown,OnMouseMove,OnMouseUp
      

  2.   

    我写了代码你看看
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, 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);
        procedure FormCreate(Sender: TObject);
        procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      StX,StY,OldX,OldY:integer;
      MD:boolean;implementation{$R *.dfm}procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      StX:=x;
      Sty:=y;
      OldX:=x;
      OldY:=y;
      MD:=True;
    end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if MD then
      begin
        Form1.Canvas.Pen.Color:=clBtnFace;
        Form1.Canvas.Rectangle(Stx,sty,Oldx,Oldy);
        Form1.Canvas.Pen.Color:=clBlack;
        Form1.Canvas.Rectangle(Stx,sty,x,y);
        Oldx:=x;
        Oldy:=y;
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      MD:=False;
      Form1.Canvas.Pen.Style:=psDash;
    end;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      MD:=False;
    end;end.
      

  3.   

    用OnMouseDown and OnMouseMove 事件处理,注意在画虚线的时候要先抹掉先前画的虚线。