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