代码示例:你是真的对Delphi很了解么计算机等级考试
文章作者 100test 发表时间 2010:01:01 09:27:51
来源 100Test.Com百考试题网
代码示例:你是真的对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内部就搜索该字段类型对应的编辑器类;然后由找到的类的类,创建该类的一个实例;进行相关的操作(决定是否有下拉框,是否有一个按钮等等)