Главная » Delphi » Пример использования функцииDefineProperty()

0

Для того  чтобы  свести  воедино всю изложенную информацию по данному  вопро су, в листинге 12.8 приведен код модуля DefProp.pas. Этот модуль иллюстрирует ис пользование функции DefineProperty() для сохранения содержимого двух полей данных, объявленных в разделе private: строкового и целочисленного.

Листинг 12.8. DefProp.pas — пример использования функции

DefineProperty()

unit DefProp;

interface uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs;

type

TDefinePropTest = class(TComponent)

private

FString: String;

FInteger: Integer;

procedure ReadStrData(Reader: TReader);

procedure WriteStrData(Writer: TWriter);

procedure ReadIntData(Reader: TReader);

procedure WriteIntData(Writer: TWriter);

protected

procedure DefineProperties(Filer: TFiler); override;

public

constructor Create(AOwner: TComponent); override;

end;

implementation

constructor TDefinePropTest.Create(AOwner: TComponent);

begin

inherited Create(AOwner);

{ Поместить данные в закрытые поля. }

FString := ‘The following number is the answer…';

FInteger := 42;

end;

procedure TDefinePropTest.DefineProperties(Filer: TFiler);

begin

inherited DefineProperties(Filer);

{ Определение новых свойств и их методов чтения/записи. }

Filer.DefineProperty(‘StringProp’, ReadStrData,

WriteStrData, FString <> ”);

Filer.DefineProperty(‘IntProp’, ReadIntData,

WriteIntData, True);

end;

procedure TDefinePropTest.ReadStrData(Reader: TReader);

begin

FString := Reader.ReadString;

end;

procedure TDefinePropTest.WriteStrData(Writer: TWriter);

begin

Writer.WriteString(FString);

end;

procedure TDefinePropTest.ReadIntData(Reader: TReader);

begin

FInteger := Reader.ReadInteger;

end;

procedure TDefinePropTest.WriteIntData(Writer: TWriter);begin

Writer.WriteInteger(FInteger);

end;

end.CОВЕТ

Всегда для чтения и записи строковых данных используйте методы ReadString() и WriteString() классов TReader и TWriter. Никогда не используйте похожие на них методы ReadStr() и WriteStr(), потому что они могут повредить файл DFM.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии