Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Кто создает свои компоненты? Поделитесь опытом


Автор: Виктор 5.6.2002, 00:42
Меня интересует прорисовка прямоугольника вокруг компонента при массовом выделении нескольких компонент в designtime. При выделении прямоугольник становится не снаружи а изнутри. В результате не все точки почему-то прорисовываются. Кто-нибудь решал такую проблему?

Автор: TwoK 5.6.2002, 08:42
А какой компонент - визуальный или нет? Т.е. я имею в виду, идет ли его прорисовка событиями или нет?

Автор: Виктор 5.6.2002, 11:26
Цитата(TwoK @ 05.6.2002, 09:42)
А какой компонент - визуальный или нет? Т.е. я имею в виду, идет ли его прорисовка событиями или нет?

Компонент визуальный. Такой эффект можно наблюдать на компоненте TComboEdit из RX Library. При выделении нескольких компонентов точки слева присутствуют, справа (где кнопка) - нет.

Автор: TwoK 5.6.2002, 12:35
Навскидку не помню, но по-моему у них вся фишка в том, что кнопка к компоненту "не относится". То есть edit - это сам компонент в понимании дельфей (билдера), а кнопка рисуется исключительно в WM_PAINT и нажатие ловится сообщениями. То есть эти точки находятся "под" этой кнопкой.

Суть. Ты выделил компонент, пришел WM_PAINT, кнопка перерисовалась (ей же пофиг, выделено что-то или нет, так как она - не компонент, _который_ ты выделил, - и все, точек нет.

Автор: Виктор 5.6.2002, 15:22
да, там к едиту прилепляется TWinControl, который в свою очередь содержит TRxSpeedButton. Видимо так и получается, что точки рисуются на родительском TControl, а кнопка перерисовывается позже и накрывает точки. В принципе можно и самому точки эти прорисовать, только не могу найти, как понять в WM_PAINT, что компонент выделен?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)