Отображение published свойств в инспекторе

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Отображение published свойств в инспекторе

Сообщение Climber » 20.05.2010 11:34:05

Сделал форму, в ней прописал published свойство:
Код: Выделить всё
published
property Number: integer read FNumber write FNumber;
Далее нажимаю Файл-Создать-Унаследованный компонент, выбираю эту форму, создаю. Форма появляется, в инспекторе свойства Number нет. Так и должно быть?
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Отображение published свойств в инспекторе

Сообщение Odyssey » 20.05.2010 14:37:50

Сам так не делал, но подозреваю что да, так и должно быть. Чтобы Лазарус знал о published-свойствах, по-идее, нужно две вещи: зарегистрировать компонент и пересобрать IDE. Здесь ни одна из них не выполнена.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Отображение published свойств в инспекторе

Сообщение Climber » 20.05.2010 15:48:31

Odyssey писал(а):Чтобы Лазарус знал о published-свойствах, по-идее, нужно две вещи: зарегистрировать компонент и пересобрать IDE.
Меня, в свою очередь, смущают тоже две вещи:
1. Чтобы узнать о published свойстве, надо сделать потомка от TPersistent (что и было сделано) и обратится к RTTI информации о классе (что и делает Lazarus).
2. В design-time Lazarus создает полноценный экземпляр объекта (насколько мне известно), так что читать-писать свойство тоже никаких препятствий нет.

А регистрировать и пересобирать IDE надо для того, чтобы компонент на палитру попал. Если я ничего не путаю.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Отображение published свойств в инспекторе

Сообщение Odyssey » 20.05.2010 18:42:25

Чтобы Lazarus смог обратиться к RTTI класса, нужно чтобы определение этого класса было вкомпилено в Lazarus и добавлено в список зарегистрированных компонентов. Особенность в том, что ObjectInspector -- это часть Lazarus, а ваша модифицированная форма -- это часть вашей программы. RTTI -- мощная штука, но она не работает между приложениями, т.е. из одного приложения (Lazarus) нельзя получить RTTI классов, определённых в другом приложении (вашей программе).
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Отображение published свойств в инспекторе

Сообщение Climber » 21.05.2010 08:12:27

Ну ладно, через RTTI нельзя. Но у Лазаря есть исходники формы, а там черным по белому написано - published property :mrgreen: Так что нечего отлынивать. 8)
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 40

Рейтинг@Mail.ru