也就是说在窗体或者,可话图形的组件上画一矩形,并且这一矩形可以随着鼠标的拖动而改变大小

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure FormMouseUp(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{$R *.dfm}var
      cx, cy: Integer;
      md: Boolean;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Form1.DoubleBuffered := true;
      md := false;
    end;procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      md := true;
      cx := x;
      cy := y;
    end;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      md := false;
    end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if md then
      begin
        Form1.Canvas.Rectangle(cx, cy, X, Y);
      end;
    end;end.
      

  2.   

    在mousemove事件内,首先擦除以前的矩形(FOldRect),然后画当前的矩形(FCRect),最后把当前的矩形赋给以前的矩形(FOldRect=FCRect),擦除就用背景颜色画矩形就行了
    canvas.rectangle(rect:TRect);
      

  3.   

    看到你的留言了,那个是很早的时候做的,现在不见了,留下email,晚上做个例子给你。
      

  4.   

    就是动态改变控件大小那样的东东呗
    这方面的文章坛子里挺多的
    情搜索 Delphi 截取图片