拖放(DragDrop)是Windows提供的一種快捷的操作方式
Delphi提供的所有控件(Control
拖放操作中控件可以分為源控件和目標控件兩類
拖放屬性主要有兩個
● DragMode : 拖動模式
● DragCursor : 拖動光標
它們都是在拖放的源控件中設置
DragCursor用於選擇拖動時顯示的光標
拖放事件主要有三個
●OnDragOver:拖動經過時激發
●OnDragDrop:拖動放下時激發
●OnEndDrop :拖動結束時激發
前兩個事件由目標控件響應
OnDragOver事件最主要的功能是確定當用戶就地放下拖動時控件是否可以接受
Source : TObject; {源控件}
X
State : TDragState; {拖動狀態}
var Accept : Boolean {能否接受}
TDragState是一個枚舉類型
type
TDragState = (dsDragEnter
不同取值的意義如下表
表
━━━━━━━━━━━━━━━━━━━━━━━━━━━
取 值 意 義
───────────────────────────
dsDragEnter 拖動對象進入一個允許拖動對象放下的控件中
dsDragLeave 拖動對象離開一個允許拖動對象放下的控件
dsDragMove 拖動對象在一個允許拖動對象放下的控件內移動
━━━━━━━━━━━━━━━━━━━━━━━━━━━
用戶可以利用提供的參數來確定放下的拖動是否可被接受
● 判斷源控件類型
Accept := Source is TLabel;
● 判斷源控件對象
Accept := (Source = TabSet
● 判斷光標位置
見(
● 判斷拖動狀態
If (Source is TLabel) and (State = dsDragMove) then
begin
source
Accept := True;
end
else
Accept := False;
當Accept=True時
OnDragDrop事件處理過程的參數包括源控件和光標位置
OnEndDrag事件是在拖動操作結束後由源控件來進行響應的
在第
procedure TFMForm
begin
if Target <> nil then FileList
end;
除以上介紹的三個事件外
[
From:http://tw.wingwit.com/Article/program/Delphi/201311/25213.html