![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| r00xus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 15.1.2010 Репутация: нет Всего: нет |
здравствуйте коллеги.
хочу сделать наследника от TForm с двумя свойствами Images для указания ImageList и IconIndex для того чтобы можно было в designtime и runtime указывать иконку для формы. Пробую с ImgeList:
но свойство не появляется в инспекторе объектов. я что-то глобально делаю не так? |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Т.е. ты решил, что если наследнику TForm просто добавить published свойство, то инспектор автоматически его подхватит? С чего вдруг? Нужно еще сообщить инспектору об этом. И, честно признаюсь, я даже не представляю как это сделать для формы. Для контролов есть специальная процедура Register, а вот как быть с формой понятия не имею.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
В теории если добавить форму в репозиторий Project->Add to Repository, то может что-то и получится, поскольку если новую форму создать унаследовав форму из репозитория, то получается что в качестве предка значиться уже не TForm, а своя форма. Сто лет не использовал этот механизм, так что что там получиться на самом деле не берусь утверждать.
Подробнее почитать нужно тут http://www.delphi.int.ru/articles/51/ Это сообщение отредактировал(а) Alexeis - 14.4.2015, 13:51 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 3 Всего: 7 |
А интерцептор-класс?
В начале юнита пишешь класс TForm унаследованный от стандартного TForm. Т. е. указываешь полное имя родительского класса. Я не помню, где TForm определен, но если, например, в Controls, то TForm=class(Controls.TForm); Соответственно форма будет унаследована не от стандартной, а от твоей. Но такую штуку надо в каждый юнит, где нужен данный функционал пихать, т. е. ее можно через {$INCLUDE} вставлять -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Beltar, и что, новые свойства тут же появятся в инспекторе?
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 3 Всего: 7 |
Неа. :( Я как-то таким способом (чтобы не регистрировать) делал свой TTreeView, который бы не разворачивался по двойному щелчку без команды, сейчас проверил, у него новое свойство в published тоже появляется только если его нормально зарегистрировать, как компонент.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 3 Всего: 7 |
Если на то пошло и охота именно в Disign-тайм, и вообще иконку надо менять часто (не знаю зачем, но раз хочется), то может сделать невидимый компонент (TFormIconManager какой-нить) с TImageList, сделать ему редактор, чтобы в disign-time редактировать, сделать свойство для формы, которой надо др. иконку и через него менять ей Icon.
Вообще когда-то давно у меня после прочтения умной книжки возникла идея сделать компонентик с формочкой для работы со справочными таблицами в БД, коим часто вполне достаточно редактирования в сетке. И совать в него эти таблицы в дизайн-тайм. Ну сделал, было это в Delphi 2006, работало как бы не очень, возникали глюки, и компонент приходилось вычищать из dfm-файла. Потом на 2007 вообще сдохло. В итоге я плюнул, сделал тупо форму, которую просто подключаю как юнит и один раз пишу простейший код добавления в нее таблиц. Может сейчас бы и прокатило, но не вижу смысла извращаться ради копеечного выигрыша в удобстве за счет добавки ему в колекцию нескольких табличек в дизайн-тайм.. Это сообщение отредактировал(а) Beltar - 22.4.2015, 14:38 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |