Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка событий компонента в 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 я мог кликнуть на лейбл
Замените панель на фрейм.

> и выполнился код обработчика онклик этого лейбла.
Как может выполниться еще не скомпилированный код?


Наверх

Титульная страница Поиск, карта сайта Написать письмо