首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

小疑点:拖动时的图标 代码自绘

2012-04-05 
小问题请教高手:拖动时的图标 代码自绘delphi 项目中,已实现控件间的拖动,有个小问题:拖动的图标,我想根据

小问题请教高手:拖动时的图标 代码自绘
delphi 项目中,已实现控件间的拖动,有个小问题:拖动的图标,我想根据实际情况而定。具体而言就是我想实现,拖动时光标为一个很大的矩形框,宽度、高度视实际情况调整。
求高手,写几句代码

[解决办法]

Delphi(Pascal) code
unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ComCtrls, ExtCtrls;type  TForm1 = class(TForm)    RichEdit1: TRichEdit;    RichEdit2: TRichEdit;    Panel1: TPanel;    Memo1: TMemo;    Label1: TLabel;    Timer1: TTimer;    procedure FormCreate(Sender: TObject);    procedure Label1StartDrag(Sender: TObject;      var DragObject: TDragObject);    procedure Timer1Timer(Sender: TObject);    procedure Label1EndDrag(Sender, Target: TObject; X, Y: Integer);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;  sx,sy: integer;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin        Randomize;        Label1.DragMode := dmAutomatic;        Panel1.Visible := False;        Panel1.Caption := '';        Timer1.Enabled := False;        Timer1.Interval := 10;        sx := Form1.Left;        sy := Form1.Top + 30;end;procedure TForm1.Label1StartDrag(Sender: TObject;  var DragObject: TDragObject);begin        Panel1.Width := Random(100);        Panel1.Height := Random(100);        Panel1.BringToFront;        Panel1.Visible := True;        Timer1.Enabled := True;end;procedure TForm1.Timer1Timer(Sender: TObject);begin        Panel1.Left := Mouse.CursorPos.X - sx;        Panel1.Top := Mouse.CursorPos.Y - sy;end;procedure TForm1.Label1EndDrag(Sender, Target: TObject; X, Y: Integer);begin        Panel1.Visible := False;        Timer1.Enabled := False;end;end. 

热点排行