freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

delphi自定義部件開發(fā)二(完整版)

2025-10-11 15:18上一頁面

下一頁面
  

【正文】 e: Boolean。部件屬性的缺省值是部件構(gòu)造方法中的屬性值集。 如果沒有聲明寫方法,那么屬性是只讀的。通常讀函數(shù)的名字是 “ Get”后加屬性名,例如,屬性 Count 的讀方法是 GetCount。屬性聲明的 read 和 write 部分描述了怎樣不通過調(diào)用訪問方法來給內(nèi)部數(shù)據(jù)域賦值。 end。 數(shù)組類型 數(shù)組屬性必須有它們自己的屬性編輯器, Object Inspector 沒有內(nèi)嵌對數(shù) 組屬性編輯的支持。所有的Pascal 類型,兼容性規(guī)則都適用屬性。屬性也很重要,因?yàn)槿绻麑⑺鼈冊O(shè)計(jì)好后,將使用戶更容易地使用,自己維護(hù)起來也很容易。屬性使用戶在運(yùn)行程序之前就能定制部件,通常你的部件不應(yīng)包含很多的方法,它們的功能可以通過屬性來實(shí)現(xiàn)。選擇時將出現(xiàn)下拉 式列表框,顯示所有的可能取值。如果你使用 TWinControl 繼承,它繼承了 Ctl3D 屬性,但是 protected 的,因此 用戶在設(shè)計(jì)和運(yùn)行時不能訪問 Ctl3D,通過在新部件中將 Ctl3D 重聲明為 published,就改變了 Ctl3D 的訪問級別。 end。 ⑷ 訪問方法 屬性的聲明語法允許屬性聲明的 read 和 write 部分用訪問方法取代對象私有數(shù)據(jù)域。通常過程名是 Set加屬性名。 end。 當(dāng)重聲明一個屬性時,能夠描述沒有缺省值的屬性。 constructor (AOwner: TComponent)。當(dāng)創(chuàng)建屬性編輯器時,可以直接從 TPropertyEditor 中繼承或從表中的任一屬性編輯器中繼承。 ⑵ 象文本一樣編輯屬性 所有的屬性都需要將它們的值在 Object Inspector 窗口中以文本的方 式顯示。 begin Result := IntToStr (GetOrdValue)。 ⑶ 將屬性作為一個整體來編輯 Delphi 支持提供用戶以對話框的方式可視化地編輯屬性。 { 創(chuàng)建編輯器 } try := GetOrdValue。 GetAttributes 返回 TPropertyAttributes 類型的集合。注冊屬性編輯器時,要與某種屬性相聯(lián)。39。事件是部件必須響應(yīng)的系統(tǒng)事件與響應(yīng)事件的一段代碼的聯(lián)接。 從部件編寫者角度事件有更多的含義。Click 方法調(diào)用用戶的 Click 事件處理過程。按約定域名在屬性名前加“ F”。 所有的事件方法都是過程。 var key: char) of Object。 ⑷ 事件處理過程是可選的 在為部件創(chuàng)建事件時要記住部件用戶可能并不編寫該事件的處理過程。顯然,不能防止用戶代碼出現(xiàn)邏輯錯誤。重聲明屬性而不描述它的實(shí)現(xiàn)將繼承相同的實(shí)現(xiàn)方法,只是改變了訪問級別。然而也有在調(diào)用繼承的方法之前執(zhí)行自己的代碼情況出現(xiàn)。例如 :一個 MouseDown事件是在用戶按下鼠標(biāo)的左鍵時發(fā)生, Windows給應(yīng)用發(fā)送 WM_LBUTTONDOWN消息。 Button: TMouseButton。 end。 Shift: ShiftState)。 { 調(diào)用常規(guī)的 mousedown 方法 } end。通知事件使用時只帶一個 TObject 類型的參數(shù),該參數(shù)是 Sender。在這種情況下,需要事件處理過程包含有關(guān)事件的必要信息的參數(shù)。 Delphi 中所有標(biāo)準(zhǔn)事件的名稱都以“ On”開頭。 部件不應(yīng)當(dāng)要求用戶以特殊方式使用它們。 例如 在處理 KeyPress 事件,用戶可以通過將 var 參數(shù) key 的值設(shè)置為空字符 (0)來壓制部件的缺省處理,代碼如下: if Assigned(OnkeyPress) then OnkeyPress(Self key)。消息 處理的基本思想是對象接收某種消息并派送它們,這是通過調(diào)用與接收的消息相應(yīng)的方法來實(shí)現(xiàn)的,如果沒有相應(yīng)于消息的指定的方法,那就調(diào)用缺省處理。兩個參數(shù)分別是 16 位和 32 位的。使用鼠標(biāo)消息記錄,你不需要自己關(guān)心哪個字是哪個座標(biāo),因?yàn)橐眠@些參數(shù)時通過名子 Xpos 和Ypos 取代了 lParamLo 和 lParamHi。 Delphi為應(yīng)用程序每種類型的部件注冊了名為 MainWndProc的方法作為窗口過程。如果部件已經(jīng)給該消息定義了處理方法,則 Dispatch調(diào)用該方法,反之, Dispatch調(diào)用缺省處理方法。 為了覆蓋消息處理方法,要在部件中以相同的消息索引聲明新的方法。 Result 是 Windows 文檔中所指的消息的返回值:由 SendMessage返回。通過覆蓋 WndProc,部件得到了派送消息之前過濾它們的機(jī)會。 。 begin { 決定是否繼續(xù)處理 過程 } inherited WndProc (Message)。如果出于某種原因要使用舊風(fēng)格的消息參數(shù) (wParam、 lParam),可以配合通用類型 TMessage 來決定Message。 例如,為了覆蓋一個處理 WM_PAINT 消息的方法,你要重聲明 WMPaint方法 : type TMyComponent=class(? ) procedure WMPaint(var Message: TWMPaint)。Delphi 將大多數(shù)的 Windows 消息轉(zhuǎn)換成部件編寫者和部件用戶都能處理的事件。 MainWndProc 是靜態(tài)方法,沒有包含任何消息的指定處理方法。窗口過程是處理窗口消息的函數(shù)。 最初, Windows 程序員不得不記住包含的每一個參數(shù)。一般沒有必要改變這種消息派送系統(tǒng),只要建立消息處理方法。 實(shí)際的代碼將與這稍有不同,因?yàn)樗惶幚泶翱谙ⅲ幚磉壿嬍窍嗤摹?{ 執(zhí)行缺省處理 } 而不應(yīng)該有這樣的代碼: if Assigned(OnClick) then OnClick(Self) else ? 。 Object Inspector 是看屬性類型來決定屬性是否是事件,所有的方法指針屬性都被看作事件,并出現(xiàn)在事件頁中。 因?yàn)樗惺录幚磉^程都是過程,所以從事件處理過程中返回信息的唯一方法是通過 var 參數(shù)。例如: Click事件是通知類型。用戶交互事件將總是由 Windows消息觸發(fā)。 { 調(diào)用動態(tài)方法 } end。 Shift: TShiftState。 procedure WMLButtonDown(var Message: TWMLButtonDown)。但是有些事件卻不是那么可以描述清楚的。 begin inherited Click。 { 使 OnClick 在 objectinspector 中可 見 } end。盡管所有這些 事件都嵌在標(biāo)準(zhǔn)控制中,但它們?nèi)笔∈?protected,這意味著用戶無法訪問它們,當(dāng)創(chuàng)建控制時,則可選擇這些事件使用戶可用。這種事件處理過程的可選性有兩個方面: ① 部件用戶并非不得不處理事件 事件總是不斷地發(fā)生在 Windows 應(yīng)用程序中。在某些情況下,部件的用戶可能想改變字符值。 Delphi 定義了所有標(biāo)準(zhǔn)事件處理過程的方法類型,當(dāng)你創(chuàng)建自己的事件時,你能使用已有的事件類型,或創(chuàng)建新的。 OnClick 事件屬性的聲明如下: type TControl=class ( TComponent ) private FOnClick: TNofiFyEvent。 begin if Assigned(OnClick ) then OnClick( Self )。 要編寫一個事件,應(yīng)當(dāng)理解: ● 事件和方法指針 ● 事件是屬性 ● 事件處理過程類型 ● 事件處理過程是可選的 ⑴ 事件 是方法指針 Delphi 使用方法指針實(shí)現(xiàn)事件。通過使用事件,應(yīng)用開發(fā)者不需要改變部件本身就能定制部件的行為。 end。該過程接受四個參數(shù): ● 要編輯的屬性的類型信息的指針?;蛘哝I入,或者從列表中選擇定編輯器。 finally 。一個典型的例 子是 Font 屬性,用戶可以找開 Font 對話框來選擇字體的屬性。 proceduve TIntegerPropertySetValue (Const Value: string)。這些虛方法是GetValue 和 SetValue,你的屬性編輯器也能繼承了一系列的方法用于讀和寫不同類型的值。 override。 Fistvue := True。如果是第一次聲明屬性,則沒有必要加 nodefault 指令,因?yàn)闆]有 default 指令即表示如此。 ⑸ 缺省屬性值 當(dāng)聲明一個屬性,能有選擇地聲
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1