![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка событий компонента в Design Time [D2005, XP]
pest © (2010-06-04 14:36:00)здравствуйте. ситуация такая:
создаю визуальный компонент, который состоит из панели и внутри панели лейбл. по клику на лейбл пишу код. в runtime все работает. но в designtime я не погу кликнуть на лейбл, потому что выделается весь компонент при клике. а хочется чтобы в designtime я мог кликнуть на лейбл и выполнился код обработчика онклик этого лейбла.
как этого можно добиться?
_Юрий (2010-06-07 18:49:00) [1]
> "потом этот package инсталлировать в IDE" это чтото иное
> чем просто сделать компоненту install?
Нет, не иное
Если компонент в палитре - значит пакет инсталлирован.
Что, в общем то, было понятно из [0].
Я было заподозрил это перед тем, как писать [13], но повелся на авторитетное мнение большинства, и решил, что сам неправильно понял вопрос.
Забавно
pest (2010-06-07 09:46:00) [2]2_Юрий
собственно говоря я так и делаю. создал новый package в котором написалRegisterComponents('MyComponents, [TTest]);и установил этот компонент. он есть в палитре и его можно кинуть на форму и онклик работает, но работает он только в рантайм. может быть "потом этот package инсталлировать в IDE" это чтото иное чем просто сделать компоненту install?
а вообще я просто создал проперти с помощью которого я переключаю табы в дизайнтайм через объектный инспектор
_Юрий (2010-06-05 09:57:00) [3]
> pest © (04.06.10 15:54) [11]
Надо код этого компонента включить в новый package, добавить регистрацию, и потом этот package инсталлировать в IDE
Тогда твой компонент появится на палитре компонентов, его можно будет кинуть на форму, и тогда вот тот код, который сидит на онклик лейбла, будет выполняться
Германн (2010-06-04 16:20:00) [4]
> а как создавать design-time package?
File->New->Package
Packages-Options-designtime
pest (2010-06-04 15:54:00) [5]2turbouser
а как создавать design-time package? я работаю на delphi2009 и там создаю обычный компонент. намного ли это сложнее чем создание обычного компонента? потому что возиться особо не буду и сделаю переключение табов через инспектор
turbouser (2010-06-04 15:26:00) [6]
> pest © (04.06.10 15:24) [8]
Для этого и существуют design-time packages.
> реализовать мою идею не прибегая к "скомпилированному" коду
> в виде "паетов"??
нельзя.
Медвежонок Пятачок (2010-06-04 15:25:00) [7]никак. потому что уже было сказано, что код которого нет невозможно выполнить
pest (2010-06-04 15:24:00) [8]Медвежонок Пятачок
я рад за этот код. и рад что он работает. давайте опустим эту замечательную историю про пейджконтроллер. как можно мне реализовать мою идею не прибегая к "скомпилированному" коду в виде "паетов"??
Медвежонок Пятачок (2010-06-04 15:20:00) [9]код пейджконтрола, который создает и переключает вкладки скомпиленмного лет назад и лежит в двоичном виде в пакетах.
этот код доступен в иде и благополучно работает.
pest (2010-06-04 15:18:00) [10]2Медвежонок Пятачок
бесполезную информацию вы мне даете! я спрашиваю как можно хоть чтото сделать. есть же какие то методы типаprocedure TPageControl.CMDesignHitTest(var Message: TCMDesignHitTest);можно же сделать возможность переключения между табами через объектный инсперкор в designtime или чтото другое можно сделать... но не опускать же руки. я сам вожусь и пытаюсь реализовать наиболее удобный вариант, просто не совсем получается. вот и решил спросить у знатоков
Медвежонок Пятачок (2010-06-04 15:11:00) [11]код пейджконтрола, который создает и переключает вкладки скомпилен много лет назад и лежит в двоичном виде в пакетах.
твой код обработчика онклик нигде не лежит кроме паса. его вообще нет
догоняешь?
pest (2010-06-04 15:08:00) [12]2Медвежонок Пятачок
и чем же мне это поможет? теперь получается что сделав свой такой полупейдж контроллер я не смогу давать возможность разработчику переключаться между табами в designtime?
Медвежонок Пятачок (2010-06-04 15:04:00) [13]код пейджконтрола скомпилен много лет назад и лежит в пакете.
а твой код обработчика лежит в пасах несобранного проекта
pest (2010-06-04 15:01:00) [14]
> Как может выполниться еще не скомпилированный код?
например как выполняется код у PageController когда переключаешь табы.
грубо говоря я иммитирую PageController. у меня будет 2 лейбла на панели. и я хочу кликать на них и чтобы менялись мои табы.
Юрий Зотов (2010-06-04 14:52:00) [15]> хочется чтобы в designtime я мог кликнуть на лейбл
Замените панель на фрейм.
> и выполнился код обработчика онклик этого лейбла.
Как может выполниться еще не скомпилированный код?