Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > Шаблоны форм и собственные события |
Автор: Matrex 30.10.2016, 10:22 | ||
Доброго дня!! Есть в Delphi такое понятие как «Шаблоны форм». Хочу создать создать шаблон формы со своим событием. Делаю так:
И добавляю форму в шаблон (правой кнопкой мыши на форме, затем "Add to Repository"). Вопрос. Как при использовании этой формы в своих проектах сделать так, что бы мое событие (OnMyEvent) выводилось в инспекторе событий? |
Автор: testX 31.10.2016, 10:08 |
Перенести событие из public в published |
Автор: Matrex 31.10.2016, 16:54 |
Не работает и с published. Точнее не отображается в инспекторе объектов на вкладке "события", там где "OnCreate", "OnShow", если создать эту форму через шаблон. Если назначать событие в real-time все работает, впрочем как и с секцией public. Задача - вывести это событие в инспектор объектов для того что бы работать с событием в design-time... Ссылка на картинку: https://goo.gl/photos/zhyKJMw86T8Zj7Ye9 |
Автор: Sajtran 31.10.2016, 21:56 |
Репозитории это просто папки шаблонов Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Shablony-form-i-sobstvennyye-sobytiya-id5815a011646e18601f78d452#findElement_E7045_581793ed352188719876d71d_0 |
Автор: Sajtran 31.10.2016, 21:56 |
Репозитории это просто папки шаблонов Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Shablony-form-i-sobstvennyye-sobytiya-id5815a011646e18601f78d452#findElement_E7045_581793ed352188719876d71d_0 |
Автор: Sajtran 31.10.2016, 21:56 |
Репозитории это просто папки шаблонов Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Shablony-form-i-sobstvennyye-sobytiya-id5815a011646e18601f78d452#findElement_E7045_581793ed352188719876d71d_0 |
Автор: Sajtran 31.10.2016, 21:56 |
Репозитории это просто папки шаблонов Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Shablony-form-i-sobstvennyye-sobytiya-id5815a011646e18601f78d452#findElement_E7045_581793ed352188719876d71d_0 |
Автор: Sajtran 31.10.2016, 21:56 |
Репозитории это просто папки шаблонов Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Shablony-form-i-sobstvennyye-sobytiya-id5815a011646e18601f78d452#findElement_E7045_581793ed352188719876d71d_0 |
Автор: Matrex 1.11.2016, 07:39 |
Плохо. Тогда нужен совет. Есть проект (много форм, работа с БД). Идея с шаблонами состояла в том, что бы создать одну форму-шаблон, в которой заложить все логику работы с БД (добавление, редактирование и т.д.) и достать такие события как «Перед добавлением записи», «Перед редактированием записи» и т.д. наружу. В настоящий момент задача решена с помощью виртуальных процедур, но такое решение, да работает, но не очень «элегантно». Какие могут быть еще варианты? Может создать свой компонент с нужными событиями (типа «TAction»). Ведь события кнопки, размещенной на шаблоне, видны и без компиляции, кстати, интересно почему? |
Автор: Vas 2.11.2016, 13:31 |
Ну наследуйте свои формы от общей и своим свойствам присваивайте процедуры нужные. Или обязательно надо видеть в инспекторе объектов свойства? |
Автор: Matrex 3.11.2016, 07:32 |
Сейчас так и сделано - использую виртуальные процедуры в наследниках. Как я понял (пообщавшись в том числе и на других форумах) - есть три решения: 1. Виртуальные методы 2. Свой компонент с событиями 3. Можно из формы сделать компонент а потом из него форму (пока не разобрался как)... Всем спасибо за советы. |