?? 048.htm
字號:
face="Arial" size="3">Color</font><font face="宋體" lang="ZH-CN" size="3">屬性將標準的</font><font
face="Arial" size="3">Windows</font><font face="宋體" lang="ZH-CN" size="3">顏色對話框作為屬性編輯器。下面是</font><font
face="Arial" size="3">TColorProperty</font><font face="宋體" lang="ZH-CN" size="3">的</font><font
face="Arial" size="3">Edit</font><font face="宋體" lang="ZH-CN" size="3">方法</p>
<p></font><font size="3"> </font><font face="Arial" size="3"></p>
<p>procedure TColorProperty.Edit</p>
<p>var </p>
<p>ColorDialog: TColorDialog;</p>
<p>begin</p>
<p>ColorDialog := TColorDialog.Create(Application); { </font><font face="宋體"
lang="ZH-CN" size="3">創建編輯器</font><font size="3"> </font><font face="Arial"
size="3">}</p>
<p>try</p>
<p>ColorDialog.Color := GetOrdValue; { </font><font face="宋體" lang="ZH-CN" size="3">使用已有的值</font><font
size="3"> </font><font face="Arial" size="3">}</p>
<p>if ColorDialog.Execute then</p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> </font><font size="3"> </font><font
face="Arial" size="3">SetOrdValue (ColorDialog.Color);</p>
<p>finally</p>
<p>ColorDialog.Free;</p>
<p>end; </p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> </font><font face="Arial" size="3">end;</p>
<p></font><font size="3"> </font><font face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3">⑷</font><font size="3"> </font><font
face="宋體" lang="ZH-CN" size="3">描述編輯器的屬性</p>
<p> 屬性編輯必須告訴</font><font face="Arial" size="3">Object Inspector</font><font
face="宋體" lang="ZH-CN" size="3">窗口如何采用合適的顯示工具。例如</font><font
face="Arial" size="3">Object Inspector</font><font face="宋體" lang="ZH-CN" size="3">窗口需要知道屬性是否有子屬性,或者是否能顯示可能取值的列表。描述編輯器的屬性通常覆蓋屬性編輯器的</font><font
face="Arial" size="3">GetAttributes</font><font face="宋體" lang="ZH-CN" size="3">方法。</font><font
face="Arial" size="3"></p>
<p>GetAttributes</font><font face="宋體" lang="ZH-CN" size="3">返回</font><font
face="Arial" size="3">TPropertyAttributes</font><font face="宋體" lang="ZH-CN" size="3">類型的集合。集合中包括表中任何或所有的值:</p>
<p></font><font size="3"> </font><font face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3">表</font><font face="Arial" size="3">19.6
</font><font face="宋體" lang="ZH-CN" size="3">屬性編輯器特征標志</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> </font><font size="3"> </font><font
face="宋體" lang="ZH-CN" size="3">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> 標志</font><font size="3"> </font><font
face="宋體" lang="ZH-CN" size="3">含</font><font size="3"> </font><font face="宋體"
lang="ZH-CN" size="3">義</font><font size="3"> </font><font face="宋體" lang="ZH-CN"
size="3">相關方法</font><font face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> </font><font size="3"> </font><font
face="宋體" lang="ZH-CN" size="3">──────────────────────────────</font><font
face="Arial" size="3"></p>
<p>paValuelist </font><font face="宋體" lang="ZH-CN" size="3">編輯器能給予一組枚舉值</font><font
size="3"> </font><font face="Arial" size="3">GetValues</p>
<p>paSubPropertie </font><font face="宋體" lang="ZH-CN" size="3">屬性有子屬性</font><font
size="3"> </font><font face="Arial" size="3">GetPropertises</p>
<p>paDialog </font><font face="宋體" lang="ZH-CN" size="3">編輯器能顯示編輯對話框</font><font
size="3"> </font><font face="Arial" size="3">Edit</p>
<p>PaMultiSelect </font><font face="宋體" lang="ZH-CN" size="3">當用戶選擇多于一個部件</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3">時,屬性應能顯示</font><font
size="3"> </font><font face="宋體" lang="ZH-CN" size="3">N/A</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> </font><font size="3"> </font><font
face="宋體" lang="ZH-CN" size="3">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p></font><font size="3"> </font><font face="Arial" size="3"></p>
<p>Color</font><font face="宋體" lang="ZH-CN" size="3">屬性是靈活的,它允許在</font><font
face="Arial" size="3">Object Inspector</font><font face="宋體" lang="ZH-CN" size="3">窗口中以多種方式選擇他們。或者鍵入,或者從列表中選擇定編輯器。因此</font><font
face="Arial" size="3">TColorProperty</font><font face="宋體" lang="ZH-CN" size="3">的</font><font
face="Arial" size="3">GetAttributes</font><font face="宋體" lang="ZH-CN" size="3">方法在返回值中包含多種屬性。</p>
<p> </p>
<p> </font><font face="Arial" size="3">function TColorProperty.GetAttributes:
TProrertyAttributes;</p>
<p>begin</p>
<p>Result := [PaMultiselect, paDialog, paValuelist];</p>
<p>end;</p>
<p></font><font size="3"> </font><font face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> ⑸</font><font size="3"> </font><font
face="宋體" lang="ZH-CN" size="3">注冊屬性編輯器</p>
<p> 一旦創建屬性編輯器,必須在</font><font face="Arial" size="3">Delphi</font><font
face="宋體" lang="ZH-CN" size="3">中注冊。注冊屬性編輯器時,要與某種屬性相聯。</p>
<p> 調用</font><font face="Arial" size="3">RegisterPropertyEditor</font><font
face="宋體" lang="ZH-CN" size="3">過程來注冊屬性編輯器。該過程接受四個參數:</p>
<p> ●</font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">要編輯的屬性的類型信息的指針。這總是通過調用調用</font><font
face="Arial" size="3">TypeInfo</font><font face="宋體" lang="ZH-CN" size="3">函數得到,如</font><font
face="Arial" size="3">TypeInfo ( TMyComponent )</font><font face="宋體" lang="ZH-CN"
size="3"></p>
<p> ●</font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">編輯器應用的部件類型,如果該參數為</font><font
face="Arial" size="3">nil</font><font face="宋體" lang="ZH-CN" size="3">則編輯器應用于所給的類型的所有屬性</p>
<p> ●</font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">屬性名,該參數只有在前一參數描述了部件的情況下才可用</p>
<p> ●</font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">使用該屬性編輯器的屬性的類型</p>
<p> </p>
<p> 下面引用了注冊標準部件的過程:</p>
<p></font><font size="3"> </font><font face="Arial" size="3"></p>
<p>procedure Register;</p>
<p>begin</p>
<p>RegisterPropertyEditor (TypeInfo(TComponent), nil, TComponentProperty,</p>
<p>RegisterPropertyEditor(TypeInfo(TComponentName), TComponent,</p>
<p>'Name', (ComponentNamePropety);</p>
<p>RegisterPropertyEditor (TypeInfo(TMenuItem), TMenu, '', TMenuItemProperty);</p>
<p>end;</font><font face="宋體" lang="ZH-CN" size="3"></p>
<p></font><font size="3"> </font><font face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> 這三句表達式使用</font><font
face="Arial" size="3">RegisterPropertyEditor</font><font face="宋體" lang="ZH-CN"
size="3">三種不同的用法:</p>
<p> ●</font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">第一種最典型</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3">它注冊了用于所有</font><font
face="Arial" size="3">TComponent</font><font face="宋體" lang="ZH-CN" size="3">類型屬性的屬性編輯器</font><font
face="Arial" size="3">TComponentProperty</font><font face="宋體" lang="ZH-CN" size="3">。通常,當為某種類型屬性注冊屬性編輯器時,它就能應用于所有這種類型的屬性,因此,第二和第三個參數為</font><font
face="Arial" size="3">nil</font><font face="宋體" lang="ZH-CN" size="3">。</p>
<p> ●</font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">第二個表達式注冊特定類型的屬性編輯器</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3">它為特定部件的特定屬性注冊屬性編輯器,在這種情況下,編輯器用于所有部件的</font><font
face="Arial" size="3">Name</font><font face="宋體" lang="ZH-CN" size="3">屬性。</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> ●</font><font size="3"> </font><font
face="宋體" lang="ZH-CN" size="3">第三個表達式介于第一個和第二個表達式之間</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3">它為部件</font><font face="Arial"
size="3">TMenu</font><font face="宋體" lang="ZH-CN" size="3">的</font><font
face="Arial" size="3">TMenuItem</font><font face="宋體" lang="ZH-CN" size="3">類型的所有屬性注冊了屬性編輯器。</p>
<p></font><font size="3"> </font><font face="Arial" size="3"></p>
<p>19.2.2.2 </font><font face="宋體" lang="ZH-CN" size="3">創建事件</p>
<p> </p>
<p> 事件是部件的很重要的部分。事件是部件必須響應的系統事件與響應事件的一段代碼的聯接。響應代碼被稱為事件處理過程,它總是由部件用戶來編寫。通過使用事件,應用開發者不需要改變部件本身就能定制部件的行為。作為部件編寫者,運用事件能使應用發者定制所有的標準</font><font
face="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">部件。要創建事件,應當理解:</p>
<p> </font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">●</font><font
size="3"> </font><font face="宋體" lang="ZH-CN" size="3">什么是事件</p>
<p> </font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">●</font><font
size="3"> </font><font face="宋體" lang="ZH-CN" size="3">怎樣實現標準事件</p>
<p> </font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">●</font><font
size="3"> </font><font face="宋體" lang="ZH-CN" size="3">怎樣定義自己的事件</p>
<p></font><font size="3"> </font><font face="Arial" size="3"></p>
<p>1. </font><font face="宋體" lang="ZH-CN" size="3">什么是事件</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3">事件是聯接發生的事情與某些代碼的機制,或者說是方法指針,一個指向特定對象實例的特定方法的指針。從部件用戶的角度,事件是與系統事件</font><font
face="Arial" size="3">(</font><font face="宋體" lang="ZH-CN" size="3">如</font><font
face="Arial" size="3">OnClick)</font><font face="宋體" lang="ZH-CN" size="3">有關的名稱,用戶能給該事件賦特定的方法供調用。例如,按鈕</font><font
face="Arial" size="3">Buttonl</font><font face="宋體" lang="ZH-CN" size="3">有</font><font
face="Arial" size="3">OnClick</font><font face="宋體" lang="ZH-CN" size="3">方法,缺省情況下</font><font
face="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">在包含該按鈕的窗體中產生一個為</font><font
face="Arial" size="3">ButtonlClick</font><font face="宋體" lang="ZH-CN" size="3">的方法,并將其賦給</font><font
face="Arial" size="3">OnClick</font><font face="宋體" lang="ZH-CN" size="3">。當一個</font><font
face="Arial" size="3">Click</font><font face="宋體" lang="ZH-CN" size="3">事件發生在按鈕上時,按鈕調用賦給</font><font
face="Arial" size="3">OnClick</font><font face="宋體" lang="ZH-CN" size="3">的方法</font><font
face="Arial" size="3">ButtonlClick</font><font face="宋體" lang="ZH-CN" size="3">:</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3">部件用戶將事件看作是由用戶編寫的代碼,而事件發生時由系統調用的處理辦法。</p>
<p> 從部件編寫者角度事件有更多的含義。最重要的是提供了一個讓用戶編寫代碼響應特定事情的場所。</p>
<p> 要編寫一個事件,應當理解:</font><font face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> ●</font><font size="3"> </font><font
face="宋體" lang="ZH-CN" size="3">事件和方法指針</p>
<p> </font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">●</font><font
size="3"> </font><font face="宋體" lang="ZH-CN" size="3">事件是屬性</p>
<p> ●</font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">事件處理過程類型</font><font
face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> ●</font><font size="3"> </font><font
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -