茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    第九章 Delphi拖放編程
    來源:易賢網(wǎng) 閱讀:1459 次 日期:2015-08-27 16:36:35
    溫馨提示:易賢網(wǎng)小編為您整理了“第九章 Delphi拖放編程”,方便廣大網(wǎng)友查閱!

    拖放(DragDrop)是Windows提供的一種快捷的操作方式。作為基于Windows的開發(fā)工具,Delphi同樣支持拖放操作,而且開發(fā)應(yīng)用系統(tǒng)的拖放功能十分方便,真正體現(xiàn)了Delphi的強(qiáng)大功能和方便性。

    Delphi提供的所有控件(Control,即能獲得輸入焦點(diǎn)的部件)都支持拖放操作,并有相應(yīng)的拖放屬性、拖放事件和拖放方法。下面我們先介紹控件的拖放支持,而后再給出開發(fā)拖放操作的一般步驟和應(yīng)用實(shí)例?!?/P>

    9.1 控件的拖放支持 

    拖放操作中控件可以分為源控件和目標(biāo)控件兩類。絕大部分控件既可以作為源控件也可以作為目標(biāo)控件。但也有一部分控件只能支持其中的一種?!?/P>

    9.1.1 拖放屬性 

    拖放屬性主要有兩個:

    ● DragMode : 拖動模式

    ● DragCursor : 拖動光標(biāo) 

    它們都是在拖放的源控件中設(shè)置。DragMode控制用戶在運(yùn)行時間內(nèi)當(dāng)在控件上按下鼠標(biāo)時控件如何反應(yīng)。如果DragMode置為dmAutomatic,那么當(dāng)用戶在控件上按下鼠標(biāo)時拖動自動開始;如果DragMode置為dmManual(這是缺省值),則將通過處理鼠標(biāo)事件來判斷一個拖動是否可以開始。

    DragCursor用于選擇拖動時顯示的光標(biāo),缺省值是CrDrag,一般不要去修改它。在程序設(shè)計過程中通用的界面規(guī)范應(yīng)該得到開發(fā)者的尊重。但有時候?yàn)榱颂囟ǖ哪康?,開發(fā)者也可以把自己設(shè)計的光標(biāo)賦給DragCursor?!?/P>

    9.1.2 拖放事件 

    拖放事件主要有三個:

    ●OnDragOver:拖動經(jīng)過時激發(fā)

    ●OnDragDrop:拖動放下時激發(fā)

    ●OnEndDrop :拖動結(jié)束時激發(fā) 

    前兩個事件由目標(biāo)控件響應(yīng),后一個事件由源控件響應(yīng)。

    OnDragOver事件最主要的功能是確定當(dāng)用戶就地放下拖動時控件是否可以接受。它的參數(shù)包括: 

    Source : TObject;  {源控件}

    X,Y : Integer; {光標(biāo)位置}

    State : TDragState; {拖動狀態(tài)}

    var Accept : Boolean {能否接受} 

    TDragState是一個枚舉類型,表示拖放項(xiàng)目與目標(biāo)控件的關(guān)系?!?/P>

    type

    TDragState = (dsDragEnter, dsDragLeave, dsDragMove);

    不同取值的意義如下表:

    表9.1 DragState 的取值與意義

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    取 值 意 義

    ───────────────────────────

    dsDragEnter 拖動對象進(jìn)入一個允許拖動對象放下

    的控件中。為缺省狀態(tài)。

    dsDragLeave 拖動對象離開一個允許拖動對象放下

    的控件。

    dsDragMove 拖動對象在一個允許拖動對象放下的

    控件內(nèi)移動。

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━  

    用戶可以利用提供的參數(shù)來確定放下的拖動是否可被接受,如:

    ● 判斷源控件類型: 

    Accept := Source is TLabel;

    ● 判斷源控件對象: 

    Accept := (Source = TabSet1);

    ● 判斷光標(biāo)位置:

    見(9.2),(9.3)中的例程。 

    ● 判斷拖動狀態(tài): 

    If (Source is TLabel) and (State = dsDragMove) then

    begin

    source.DragIcon := ' New.Ico ';

    Accept := True;

    end

    else

    Accept := False;

    當(dāng)Accept=True時,目標(biāo)控件可以響應(yīng)OnDragDrop事件,用于確定拖動被放下后程序如何進(jìn)行處理。

    OnDragDrop事件處理過程的參數(shù)包括源控件和光標(biāo)位置。這些信息可用于處理方式的確定。

    OnEndDrag事件是在拖動操作結(jié)束后由源控件來進(jìn)行響應(yīng)的,用于源控件進(jìn)行相應(yīng)的處理。拖動操作結(jié)束既包括拖動放下被接受,也包括用戶在一個不能接受放下的控件上釋放了鼠標(biāo)。該事件處理過程的參數(shù)包括目標(biāo)控件(Target)和放下位置的坐標(biāo)。如果Target=nil, 表示拖動項(xiàng)目沒有被任何控件接受。

    在第3節(jié)將介紹的文件拖放移動、拖放拷貝操作中,如果操作成功,則文件列表框應(yīng)更新顯示內(nèi)容。下面這段程序用于實(shí)現(xiàn)這一功能?!?/P>

    procedure TFMForm.FileListEndDrag(Sender, Target: TObject; X, Y: Integer);

    begin

    if Target <> nil then FileList.Update;

    end;

    除以上介紹的三個事件外,還有一個事件OnMouseDown 也常用于拖放操作的響應(yīng)。OnMouseDown雖然不是一個專門的拖放事件,但在人工模式下拖動的開始是在這一事件的處理過程中實(shí)現(xiàn)的。 

    9.1.3 拖放方法 

    拖放方法有三個:

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

    ●EndDrag : 結(jié)束一個拖動

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

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

    當(dāng)DragMode置為dmManual時,拖動必須調(diào)用控件的BeginDrag方法才能開始。BeginDrag有一個布爾參數(shù)Immediate。如果輸入?yún)?shù)為True,拖動立即開始,光標(biāo)改變到DragCursor的設(shè)置。如果輸入?yún)?shù)為False,直到用戶將光標(biāo)移動了一定的距離(5個象素點(diǎn))后才改變光標(biāo),開始拖動。這就允許控件接受一個OnClick事件而并不開始拖動操作。

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:第九章 Delphi拖放編程
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報班

    • 報班類型
    • 姓名
    • 手機(jī)號
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)