代码示例:你是真的对Delphi很了解么?

原创 2001年10月11日 22:22:00

 

 

代码示例:你是真的对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内部就搜索该字段类型对应的编辑器类;然后由找到的类的类,创建该类的一个实例;
进行相关的操作(决定是否有下拉框,是否有一个按钮等等)

    更多文章

 

你真的了解HTML吗?–雅虎面试题

有这么一段HTML,请挑毛病:   哥写的不是HTML,是寂寞。  我说:不要迷恋哥,哥只是一个传说 考点1:html和 xhtml的区别 ...
  • ymjring
  • ymjring
  • 2013年01月04日 14:56
  • 14686

【译】使用示例带你提前了解 Java 9 中的新特性

Java 作为 Android 的基础编程语言,每一次迭代也是备受安卓开发人员的关注。这不,Oracle 公司在今年即将发布 Java 9 正式版,一些新的特性和改进很是值得期待。...
  • wenbitianxiafeng
  • wenbitianxiafeng
  • 2017年03月13日 08:20
  • 557

delphi代码创建bde别名示例

实际应用中可能需要程序自动创建BDE别名 特试建 MSsql和paradox数据库别名 //单元代码 unit Unit11; interface uses Windows, Messa...
  • simonhehe
  • simonhehe
  • 2013年01月08日 15:06
  • 1867

delphi正则表达式学习笔记(一)

在 Delphi 中是没有自带的正则表达式库的,在网上能找到的用于 Delphi 的正则表达式类大体上有两个,分别是 PerlRegEx 和 RegExpr。 前者相当强大,但发布程序时需要...
  • xtfnpgy
  • xtfnpgy
  • 2015年10月13日 15:57
  • 790

守护进程概念及实例

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。Linux的大多数服务器就是用守护进程实现的。比如,...
  • yixianfeng41
  • yixianfeng41
  • 2017年03月01日 20:08
  • 238

CSS格式化排版之文字排版

文字排版--字体 我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。下面我们来看一个例子,下面代码实现:为网页中的文字设置字体为宋体。 body{font-family:"宋体"...
  • u012110719
  • u012110719
  • 2014年11月30日 09:15
  • 785

Delphi 2007 代码补全、语句提示的快捷键是什么?

为了帮助网友解决“Delphi 2007 代码补全、语句提”相关的问题,中国学网通过互联网对“Delphi 2007 代码补全、语句提”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:De...
  • zb0567
  • zb0567
  • 2014年06月21日 16:04
  • 3054

Java 访问权限控制:你真的了解 protected 关键字吗?

在一个类的内部,其成员能否被其他类所访问,取决于该成员的修饰词;而一个类能否被其他类所访问,取决于该类的修饰词。Java的类成员访问权限修饰词有四类:private,包访问权限,protected和p...
  • justloveyou_
  • justloveyou_
  • 2017年03月12日 22:54
  • 6529

你真的了解find命令吗

find 命令是很常用的shell命令,本文通过解决3个常见问题来剖析find的用法 1 按照时间查找文件 通过使用-ctime -mtime -atime可以指定特定时间 这三个参数的使用方法...
  • voidccc
  • voidccc
  • 2013年08月28日 17:33
  • 1216

你真的了解WIFI吗?

自从只需少量的话费就可以将笔记本、平板电脑连接到互联网,WiFi已成为我们熟知的网络,并无处不在。 Wi-Fi对于一些物联网应用十分有用,比如楼宇自动化、内部能源管理。但对于另一些的物联网应用中...
  • yujideenji
  • yujideenji
  • 2017年06月23日 18:03
  • 123
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:代码示例:你是真的对Delphi很了解么?
举报原因:
原因补充:

(最多只允许输入30个字)