在DefineProperties方法中,我们可以看出,有一个Filer对象作为它的参数,当定义属性时,它引用了Ancestor属性,如果该属性非空,对象应当只读写与从Ancestor继承的不同的属性的值。它调用TFiler的DefineProperty方法,并定义了ReadLeft,WriteLeft,ReadTop,WriteTop方法来读写Left和Top属性。 因此,凡是从TComponent派生的组件,即...
HasData参数在运行时决定了属性是否有数据要存储。 只有当对象有数据要存储时,才在该对象的DefineProperties中调用DefineProperty。DefineProperties有一个Filer对象作为它的参数,调用的就是该Filer对象的DefineProperty和DefineBinaryProperty方法。当定义属性时,Writer对象应当引用Ancestor属性,如果该属性非空,Writer对象应当只写...
Instance.DefineProperties(Self); 该方法实际上调用的是TReader的DefineProperty方法: procedure TReader.DefineProperty(const Name: string; ReadData: TReaderProc; WriteData: TWriterProc; HasData: Boolean); begin if SameText(Name, FPropName) and Assigned(ReadData) then begin ReadData(Self); FPropName :...
在Defineproperty方法中。Name参数用于指定应写入DFM文件的属性的名称,该属性不在类的published部分定义。 ReadData和WriteData参数指定在存取对象时读和写所需数据的方法。ReadData参数和WriteData参数的类型分别是TReaderProc和TWriterProc。这两个类型是这样声明的: ...
DefineProperty(index, '属性名称', '属性英文名称', '属性的说明', UD_INT, 0, nil); DefineProperty() 参数含义依次为:所属数据类型索引,属性名称,属性英文名称,属性的说明,属性的类型,状态值,选项文本。 当组件的属性值被读取和修改时,相应的接口函数被会调用。请参考:读取属性,修改属性。
因此,只要是Stream对象所能访问的媒介都能由Filer对象存取部件。TFiler 对象还提供了两个定义属性的方法:DefineProperty和DefineBinaryProperty,这两个方法使对象能读写不在部件published部分定义的属性。 因为Filer对象主要用于存取Delphi的窗体文件和窗体文件中的部件,所以要清楚地理解Filer对象就要清楚Delphi 窗体文件(DFM...
DefinePropertyPage: TDefinePropertyPage);override; functionGet_BorderStyle: TxBorderStyle;safecall; functionGet_Color: TColor;safecall; functionGet_Columns: Integer;safecall; functionGet_Ctl3D: WordBool;safecall; functionGet_Cursor: Smallint;safecall; ...
DefinePropertyPage(Class_PropertyPage1); end; 实现自定义属性页时,用OleObject来与属性页中的ActiveX控件交互。OleObject是变体,它能引用 ActiveX控件的IDispatch接口,属性页的UpdatePropertyPage()方法和UpdateObject()方法由向导产生。 在属性页激活时UpdatePropertyPage()被调用,这样就有机会把ActiveX控件的属性值显示...
procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override; procedure EventSinkChanged(const EventSink: IUnknown); override; function Get_Active: WordBool; safecall; function Get_AlignDisabled: WordBool; safecall; function Get_AlignWithMargins: WordBool; safecall; ...
filer.DefineProperty('MyProperty',LoadProperty,StoreProperty,true); //LoadProperty 和StoreProperty 是以函数为参数 end; // 在DefineProperties方法中需要一个写变量函数作为参数。 procedure StoreProperty(Writer:TWriter); procedure TMyTimer.StoreProperty(Writer:TWriter); ...