![]() |
|
|
![]()
|
|
| Нитонисе |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Компонент делаю на основе базового класса TWinControl. У него всего пока одно свойство - FCaption - содержание метки. Оно опубликовано в инспекторе свойств:
Вот функция SetCaption:
А вот конструктор компонента:
Вопросы такие: 1. В инспекторе свойств появляется строка Caption, но при ее изменении на - форме экземпляр компонента содержимое метки не меняет. Там так и остается строка по умолчанию "Caption". Почему? 2. При растяжении компонента на форме хотелось бы, чтобы растягивался и комбобокс, являющийся частью проектируемого компонента. Но он не растягивается. Как сделать? 3. В похожем компоненте LabeledEdit метка отрисовывается как-то интересно. Такое ощущение что на канве родителя. Так ли это и возможно ли это? |
||||||
|
|||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Потому что ваша переменная класа FCaption не имеет никакого отношения к свойству Caption метки, которую вы кстати создали, и даже не сохранили.
|
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
xvr
Спасибо, с этими вопросами разобрался. Добавил в компонент два указателя на комбобокс и метку соответственно. Хотелось бы иметь возможность пользоваться всем набором свойств комбобокса и метки в инпекторе. Как опубликовать все стандартные свойства этих двух составляющих моего компонента? Вручную, так это ж черти сколько свойств надо переписывать. Это сообщение отредактировал(а) Нитонисе - 7.2.2011, 19:31 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
| Нитонисе |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Ага, все получилось, благодарю)
Это сообщение отредактировал(а) Нитонисе - 11.2.2011, 15:48 |
||||
|
|||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Появился еще один вопрос. У своего нового компонента я объявил событие OnClick, которое по задумке должно возникать только при щелчке на комбобоксе и обрабатываться должно стандартным способом. При щелчке на метке ничего не должно происходить. Как это сделать?
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Сделать событие OnClick и вручную замкнуть его на событие Combobox'а
Event в компоненте - это обычная проперть (типа __closure*), и для нее можно задать сетеры и гетеры. Задай их и перенаправь на твой ComboBox->OnClick |
|||
|
||||
| Нитонисе |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Вот объявление класса компонента
Вот теперь вопрос в том, как событию нового компонента сопоставить событие комбобокса. Я так думаю это нужно делать в конструкторе
Но этот код не работает. Как все же это сделать? |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
это получится одноразовое приравнивание.. т.е. изменения одного не будут отражаться на другом.. к тому же Вам надо не внешнее событие передать комбобоксу, а наоборот, а значит левая с правой стороной поменяны.. с Билдером не работал, но интуитивно полагаю, что Вам нужно определить сеттер, как функцию принимающую обработчик и ее подсунуть в FComboBox->OnClick.. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
|
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
xvr
Не работает этот код. То есть я пишу код в обработчике события нового компонента, который не выполняется при клике. Добавлено @ 14:38
Я не совсем представляю себе работу сеттеров и ридеров... в какой момент выполняются соответствующие функции? Это сообщение отредактировал(а) Нитонисе - 14.2.2011, 14:38 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
| Нитонисе |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Это заголовочный файл
Это исполняемый файл
А это обработчик клика уже при использовании нового компонента
|
||||||
|
|||||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
сеттер вызывается для изменения поля, а геттер для получения значения.. так например
"преврашается" в
|
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Вроде все ок. Видимо при стриминге свойств передрались обработчики OnClick компонента и КомбоБокса внутри него (оба пишут в одно и тоже место, но из 2х разных мест). Видимо придется врезаться в сам TComboBox (делать от него наследника и перехватывать событие раньше).
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |