наследование форм [РЕШЕНО]

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

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

Ответить
Frolik
постоялец
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

наследование форм [РЕШЕНО]

Сообщение Frolik »

У меня в проекте несколько форм похожих друг на друга, но тем не менее очень разные, чтобы их можно было объединить в одну. Поэтому я создал форму шаблон, в которой реализовал методы одинаковые для всех. Используя шаблон, создаю новую форму, она наследует методы и свойства своего родителя. Вроде все в порядке, но мне понадобилось добавить к одной незадействованной до этого кнопке обработчик. Добавляю у родителя, у потомка никак не проявляется. Пошел другим путем: добавил у родителя кнопку, написал обработчик. В дизайнтайм ее у потомка не видно, в откомпилированном виде кнопка есть и работает.
Собственно вопрос: что сделать, чтобы при изменении предка, изменения появлялись у всех потомков, пусть даже не в дизайнтайм.

Добавлено спустя 9 минут 13 секунд:
Всего-то нужно было перезапустить лазарус. Как все просто, однако.

Но если что-то удаляю в родителе, у потомка это не удаляется даже после перезапуска.
Последний раз редактировалось Frolik 12.09.2011 02:21:09, всего редактировалось 1 раз.
NTFS
постоялец
Сообщения: 388
Зарегистрирован: 05.11.2007 13:57:50
Откуда: Краснодар
Контактная информация:

Сообщение NTFS »

Наследование форм кривовато даже в Delphi.

А в Lazarus - это игра в русскую рулетку :-)
Рекомендую фреймы, а лучше создание компонент в рантайме, в зависимости от текущего вида формы. Кода чуть больше, зато уверен в результате.
Frolik
постоялец
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

Сообщение Frolik »

Наверное так и поступлю. Создам в отдельном модуле набор необходимых компонентов с нужными свойствами и буду расставлять на шаблоне в рантайме.
Frolik
постоялец
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

Сообщение Frolik »

Это оказалось намного проще, чем то, что я планировал сделать сначала.
Ответить