熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:Delphi拖放編程[2]

2013-11-23 17:51:10  來源: Delphi編程 

   拖放方法

  拖放方法有三個

  ●BeginDrag : 人工方式下開始一個拖動

  ●EndDrag : 結束一個拖動

  ●Dragging : 判斷一個控件是否正被拖動

  這三個方法都被源控件使用

  當DragMode置為dmManual時拖動必須調用控件的BeginDrag方法才能開始BeginDrag有一個布爾參數Immediate如果輸入參數為True拖動立即開始光標改變到DragCursor的設置如果輸入參數為False直到用戶將光標移動了一定的距離(個象素點)後才改變光標開始拖動這就允許控件接受一個OnClick事件而並不開始拖動操作

  EndDrag方法中止一個對象的被拖動狀態它有一個布爾參數Drop如果Drop設置為True被拖動的對象在當前位置放下(能否被接受由目標控件決定)如果Drop設置為False則拖動就地被取消

  下面一段程序表明當拖動進入一控制面板時拖動被取消

  procedure TFormPanelDragOver(Sender Source: TObject; X Y: Integer;

  State: TDragState; var Accept: Boolean)

  begin

  Accept := False;

  if (Source is TLabel) and (State = dsDragEnter) then

  (Source as TLabel)EndDrag(False)

  end;

  Draging方法判斷一個控件是否正被拖動在下面的例子中當用戶拖動不同的檢查框時窗口改變為不同的顏色

  procedure TFormFormActivate(Sender: TObject)

  begin

  CheckBoxDragMode := dmAutomatic;

  CheckBoxDragMode := dmAutomatic;

  CheckBoxDragMode := dmAutomatic;

  end;

  procedure TFormFormDragOver(Sender Source: TObject; X Y: Integer;

  State: TDragState; var Accept: Boolean)

  begin

  if CheckBoxDragging then

  Color := clAqua;

  if CheckBoxDragging then

  Color := clYellow;

  if CheckBoxDragging then

  Color := clLime;

  end;

   開發拖放功能的一般步驟

  拖放作為Windows提供的一種方便操作對象的功能在Delphi中可以很容易地開發出來根據拖放操作的過程可以把開發步驟劃分為四個階段

  ● 開始拖動操作

  ● 接收拖動項目

  ● 放下拖動項目

  ● 終止拖動操作

  在介紹過程中我們將結合一個TabSet(標簽集)的拖放操作實例界面設計如圖在運行時當用戶把一個標簽拖動到另一個標簽的位置時該標簽將移動到該位置並引起標簽集的重新布置

   開始拖動操作

  當拖動模式(DragMode)設置為dmAutomatic時用戶在源控件上按下鼠標時拖動自動開始當設置為dmManual時通過處理鼠標事件來決定拖動是否開始如果想開始拖動調用BeginDrag方法

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25214.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.