大家看一下这个例子,谁能做出这样的效果呢?帮帮忙。我想知道(50分)

  • 主题发起人 主题发起人 程序小鱼
  • 开始时间 开始时间

程序小鱼

Unregistered / Unconfirmed
GUEST, unregistred user!
请你们看看这个例子。这个网址上,有个例子可以DOWN,VC的。我就想做出这种效果就行了。谁能帮我!!!
http://www.erjid.com/cpp/BaseUse/CRectTrack/CRectTracker.html

我想知道DELPHI怎么做
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

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 FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
var rect:TRect;
d:boolean;
implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d:=true;
rect.Top:=y;
rect.Left:=x;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
rect.Bottom:=y;
rect.Right:=x;
form1.Canvas.Pen.Style:=psDash;
//form1.Invalidate;
if d then
form1.Canvas.Rectangle(rect);
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d:=false;
rect.Bottom:=y;
rect.Right:=x;
form1.Invalidate;
end;
end.
獲取了那個Rect你就可以在對那裡面的對象做你想要的操作了。
 
ing的方法只是在form1上这样可以,在IMAGE上是不行的。会有强烈的闪烁问题了。我想有IAMGE上做。能有什么好方法吗
 
比如我画了一个(1,1,100,100)矩形,brush.style:=clclear;pen.width:=5;
form1下面有图,我想把这个矩形擦掉,怎么做。不能用form1的color重画,因为FORM上有图,图中的颜色也不同。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部