Custom Forms

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

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

Custom Forms

Сообщение ssl » 29.09.2007 20:42:26

Очень хочется свои формы с доп. published свойствами в ObjectInspector'е. В каталоге Components обнаружил packadge
customform\lazcustforms.lpk
Установил. В подкаталоге demo пример такой формы - appforms.lpk
Тоже установил. Затем File\New\CustomForms\App form\TappForm -
форма создаётся, новые проперти в инспекторе видятся, радостно переоткрываю проект - и нарываюсь на "Unable to read file AppForm!" и предложение открыть форму как наследника от TForm.
Соображаю: не понимает Лазарь, что TAppForm есть корневой класс и дизайнер формы пытается найти AppForm.pas как модуль предка. :(

В examples нахожу другой пример: designerbaseclass.
Если доработать напильником (TMyComponentClass наследовать не от TComponent, а от TForm), то вроде получаем, что хотели, но в этом случае криво работает наследование таких форм: визуальные компоненты наследуются, невизуальные пытаются дублироваться.

Я человек упрямый, нахожу в коде customcomponentclass.pas заветную строчку:
Код: Выделить всё
FormEditingHook.RegisterDesignerBaseClass(TMyComponentClass);


Подстановка этого заклинания в custforms.pp, в процедуру Register (сразу после RegisterProjectFileDescriptor) вроде дала желанный эффект.. но только наполовину: форма открывается нормально, но при попытке закрыть вылетает "Division by zero" и Лазаря приходится валить :((

В своё время в Дельфи я с этими CustomForms и наследованием повоевал достаточно, а по второму разу разбираться с исподниками дизайнера ой, как не хочется..
Может, присоветует кто чего-нибудь полезное? Хоть в каких модулях самого Лазаря копаться.
ssl
новенький
 
Сообщения: 59
Зарегистрирован: 17.05.2005 11:27:01

Re: Custom Forms

Сообщение Predator » 04.12.2010 12:00:02

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

С последнего вашего сообщения прошло 3 года а проблема так же остро висит, даже в последем лазарусе!

Добавлено спустя 34 минуты 11 секунд:
Прочитал вот этот топик!
http://www.lazarus.freepascal.org/index ... 66.15.html

Там было предложено посмотреть extp_proj_intf.pas модуль, в этом модуле было все тож самое что ты и предложил а именно
FormEditingHook.RegisterDesignerBaseClass(TMyComponentClass);

Проблем с Division by zero вроде бы не заметил очевидно то что я наследую свою форму от TForm а не от TCustomForm
Predator
незнакомец
 
Сообщения: 6
Зарегистрирован: 30.01.2010 00:48:34


Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru