Значения свойств формы и всех вставленных в нее компонентов сохраняются в файле формы с расширением DFM. Начиная с версии 5 этот файл может представлять собой строковый файл со строками типа ПАРАМЕТР « ЗНАЧЕНИЕ. Например:

object Forml: TForml Left = 192 Top = 113 Width - 696 Height - 480 Caption - 'Forml* Color = clBtnFace Font.Charset = DEFAULT JTHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif Font.Style = [] OldCreateOrder = False PixelsPerlnch = 96 TextHeight - 13 object Buttonl: TButton

Left - 296

Top « 368

Width = 75

Height = 25

Caption = 'Buttonl'

TabOrder = 0

end Среда Delphi умеет создавать и использовать этот файл для любых форм и компонентов, так что в большинстве случаев у программиста не возникает необходимости вмешиваться в процесс. Однако иногда вы можете захотеть изменить стандартное поведение среды, например, чтобы произвести какие-то дополнительные действия при загрузке компонента или его сохранении. В этом разделе приводятся все необходимые сведения о том, как компонент взаимодействует с файлом формы.

7.9.1. Механизм взаимодействия

Прежде всего следует уточнить, что по умолчанию в файле сохраняются не все свойства, а лишь опубликованные, и только в том случае, когда их значения отличаются от умалчиваемых.

При создании формы среда (Редактор форм) обращается к глобальной процедуре WriteComponentResFile, передавая ей имя файла формы и ссылку на объект формы. Например:

WriteComponentResFile(1 Unit.dfm1, Forml);

В ходе выполнения процедуры создается поток данных (экземпляр класса TFileStream), который, в свою очередь, создает объект класса TWriter. Последний сканирует свойства формы и ее дочерних компонентов и передает их в поток для физической записи в файл.

При чтении формы из файла вызывается функция ReadComponentResFile, которая создает и использует объект класса TReader. Этот объект получает из потока слово object (точнее, маркер начала списка) и вызывает конструктор соответствующего класса. Конструктор создает нужный объект и устанавливает умалчиваемые значения свойств. После этого вызывается серия методов компонента (формы), которые считывают из файла значения свойств, отличающиеся от умалчиваемых.

Этот умалчиваемый механизм иногда требует изменения. Например, возможно вам понадобится создать компонент, в котором сохраняются и считываются значения неопубликованных свойств.

7.8. Свойства-интерфейсы || Оглавление || 7.9.2. Умалчиваемые значения


Искусство создания компонентов Delphi



Новости за месяц

  • Декабрь
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31