RTTI controls/ru

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) português (pt) русский (ru)

Введение

Эта страница описывет пакет RunTimeTypeInfoControls в <lazarusdir>/components/rtticontrols/.

Компоненты RTTI расширяют многие компоненты LCL возможностью напрямую соединяться с опубликованными свойствами классов. Они значительно сокращают написание скучного кода, автоматически загружая/сохраняя данные между компонентами LCL и опубликованными свойствами. Фактически, вы можете создавать работающие формы вообще без написания какого-либо кода.

В комбинации с Streaming components вы можете уменьшить количество кода, необходимого для соединения данных программы с GUI и диском/сетью, до минимума.

Хорошее объяснение RTTI для Delphi, которое также может быть применено и к Free Pascal, можно найти здесь: http://www.blong.com/Conferences/BorConUK98/DelphiRTTI/CB140.htm

Тестирование компонентов

Элементы управления RTTI очень полезны при написании/тестировании компонентов.

  • Поместите ваш компонент на форму
  • Поместите элемент управления RTTI на форму
  • Укажите ваш компонент в свойстве TIObject компонента RTTI
  • Укажите нужное свойство (из выпадающего списка) в свойстве TIPropertyName компонента RTTI
  • Теперь вы можете редактировать свойство в интерактивном режиме и видеть результаты ваших изменений во время выполнения (а иногда и во время разработки, в зависимости от компонента)
  • Каждый элемент управления RTTI будет пытаться вызвать соответствующий редактор свойства для вашего выбранного свойства.

Например, если свойство имеет тип StringList, то RTTIButton будет вызывать редактор StringList, RTTIMemo - отображать его, и всё это - без написания и строчки кода!

См. также