2.4 定义新组件有两种方法来定义新的组件类:继承和组合。 继承是面向对象的设计概念。派生类定义它的父类的一些内容,还可以提供一些其他的功能。在PRADO框架中,组件的属性和事件都是可以继承的。派生类也可以提供更多的属性和事件。所有的组件类都应该从TComponent 或者它的派生类继承。 所有父组件的属性和事件会被派生组件类继承。 组合是用于基于组件的框架的。在PRADO中,主要对控件使用。一个新的控件类可以被定义为几个其他几个控件的组合。新的类负责协调这些控件之间的通信,并代表它们和外界通信。比如可以定义一个LabeledTextBox 控件类(继承TControl ),它由TLabel 一个控件和一个TLabel 一般的约定(并不强求),控件的ID和属性的首字母应该大写,比如HomePage, NavigateUrl, 要定义一个新的组件通常需要写一个组件类文件,一个规格文件和一个模板文件。有些时候后面两个文件可以不要的。 2.4.1 定义属性 组件的属性在组件类的规格文件中定义,规格文件的语法如下: <?xml version="1.0" encoding="UTF-8"?> 在这里,name 用来唯一标识属性;get 定义了一个类方法来读取属性,set 定义了一个类方法来写属性,type 定义了属性的类型(string, integer, float, boolean, array 和object),default 标识了属性的缺省值。其中name 属性是必须的。getter方法的语法如下: function getterMethodName() 如果一个属性是不可读的,那么不要设置get 属性。setter方法的语法如下: function setterMethodName($value) 如果一个属性是不可写的,那么不要设置set 属性。如果这个属性的类型是string,那么也可以不指明。类型的属性用来自动转换配置在规格文件或者模板文件中的属性初始值。default 可以用下面的语法定义组件的组件属性: <?xml version="1.0" encoding="UTF-8"?> 这里type 属性指明了组件类的名称,IDID 属性指明了属性名称。property 元素和event 元素指明了对应的初值。 当组件被创建的时候,它的组件类型属性会自动被实例化。 2.4.2 定义事件 组件事件在规格文件中定义,而其内在的实现机制在类文件中定义。在规格文件中定义事件的语法如下: <?xml version="1.0" encoding="UTF-8"?> 事件的name应该是一个合法的变量名。 在类文件中,通常会实现这么一个对应的方法(假定事件的名称叫 OnClick): function onClick($param) 当这个事件实际发生的时候,这个 onClick 方法应该确实被调用了(参考框架的TButton.php 2.4.3 编写模板文件 在这一节里,会讲一些关于如何编写模板文件。模板是用于控件的,当时也不是所有的控件都需要模板。比如TTextBox, TButton 这些控件因为没有内容,因此就不需要模板。模板文件一般用于页面或者基于组合定义的控件。 模板中的注释,比如 <!-- ... --> 被作为静态文本处理。 可以在组件标签之外通过属性标签<prop:...>来配置组件的属性。比如可以用以下的代码配置模板中TTextBox 控件的Text 属性。 ... 在一对属性标签中间的内容作为对应的组件属性的值。如果一些属性的值需要很大的数据,这样就很方便。 在模板文件中可以使用3种特殊的标签:
|
正在阅读:PHP开发利器-PRADO 1.6PHP开发利器-PRADO 1.6
2005-04-27 10:26
出处:
责任编辑:xietaoming
键盘也能翻页,试试“← →”键