| 導購 | 订阅 | 在线投稿
分享
 
 
 

代碼示例:你是真的對Delphi很了解麽?

來源:互聯網網民  2006-05-27 08:02:26  評論

代碼示例:你是真的對Delphi很了解麽?

Procedure StepEditor( strgrid: TStringGrid; Step: TStep );

var

sValue, sField: string;

EditorClass: TStepEditorClass;

Editor: TStepEditor;

begin

sField := strgrid.Cells[0, strgrid.Selection.Top];

sValue := strgrid.Cells[1, strgrid.Selection.Top];

EditorClass := EditorClassList.Editors[ sField ];

Editor := EditorClass.Create;

Editor.Field := sField;

Editor.Step := Step;

Editor.Edit( sValue );

Editor.Free;

strgrid.Cells[ 1, strgrid.Selection.Top ] := sValue;

end;

EditorClass 是一個Class of Class, 也就是類的類

比如

TFormClass = Class of TForm;

但是不同于:TFormClass = Class( TForm ); 這是兩個概念!

而 EditorClassList 裏面存放的就是 類的類的列表;

Editor := EditorClass.Create;

Create是類方法,而不是對象方法,所以可以由 EditorClass來創建EditorClass的一個實例

補充:

TStepEditor = Class( TObject )

...

End;

TStepEditorClass = Class of TStepEditor;

Object Inspector 爲什麽能夠提供一個方便的編輯環境?

爲什麽不同的字段,供選擇的值不一樣,校驗的方式不一樣,彈出的編輯框

不一樣?因爲根據不同的字段類型,注冊了不同的屬性編輯器 Propety Editor;

簡化Delphi提供的注冊屬性編輯器的函數,可以描述爲以下:

RegisteryPropertyEditor( PropertyFieldType, EditorClass );

^此處爲類型名,如 Bool , Integer, ...等等

^此處爲對應的編輯器的類名,注意,不是類名的字符描述

實際運行的時候,用戶點擊Object Inspector 的一個字段的時候,

Delphi內部就搜索該字段類型對應的編輯器類;然後由找到的類的類,創建該類的一個實例;

進行相關的操作(決定是否有下拉框,是否有一個按鈕等等)

更多文章

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
代碼示例:你是真的對Delphi很了解麽? Procedure StepEditor( strgrid: TStringGrid; Step: TStep ); var sValue, sField: string; EditorClass: TStepEditorClass; Editor: TStepEditor; begin sField := strgrid.Cells[0, strgrid.Selection.Top]; sValue := strgrid.Cells[1, strgrid.Selection.Top]; EditorClass := EditorClassList.Editors[ sField ]; Editor := EditorClass.Create; Editor.Field := sField; Editor.Step := Step; Editor.Edit( sValue ); Editor.Free; strgrid.Cells[ 1, strgrid.Selection.Top ] := sValue; end; EditorClass 是一個Class of Class, 也就是類的類 比如 TFormClass = Class of TForm; 但是不同于:TFormClass = Class( TForm ); 這是兩個概念! 而 EditorClassList 裏面存放的就是 類的類的列表; Editor := EditorClass.Create; Create是類方法,而不是對象方法,所以可以由 EditorClass來創建EditorClass的一個實例 補充: TStepEditor = Class( TObject ) ... End; TStepEditorClass = Class of TStepEditor; Object Inspector 爲什麽能夠提供一個方便的編輯環境? 爲什麽不同的字段,供選擇的值不一樣,校驗的方式不一樣,彈出的編輯框 不一樣?因爲根據不同的字段類型,注冊了不同的屬性編輯器 Propety Editor; 簡化Delphi提供的注冊屬性編輯器的函數,可以描述爲以下: RegisteryPropertyEditor( PropertyFieldType, EditorClass ); ^此處爲類型名,如 Bool , Integer, ...等等 ^此處爲對應的編輯器的類名,注意,不是類名的字符描述 實際運行的時候,用戶點擊Object Inspector 的一個字段的時候, Delphi內部就搜索該字段類型對應的編輯器類;然後由找到的類的類,創建該類的一個實例; 進行相關的操作(決定是否有下拉框,是否有一個按鈕等等) [url=http://www.csdn.net/develop/my_article.asp?author=Musicwind]更多文章[/url]
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有