| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Ширина компонента в ScrollBox |
| Автор: wesadex 24.11.2005, 12:15 |
| В общем написал компонент в виде маленькой выпадающей панельки с заголовком (по клике на котором она и выпадает) наследник TPanel. Если его запихать в ScrollBox на всю его ширину (так чтобы скрола не было видно в дизайн-тайме, но Align оставить alCustom или alNone) и в реал-тайме сделать так, чтобы скрол появился, тогда сам скролл перекроет мою панельку и ее содержимое, но горизонтального скролла не появится. Как сделать так, чтобы этого не происходило? Насколько я понимаю ScrollBox посылает какое-то сообщение контролам внутри себя, когда рисует скролл. Вот какое? И как послать это же (или другое с той же целью) сообщение всем конторолам внутри моей панельки, чтобы они тоже сжались нормально? |
| Автор: Alexeis 24.11.2005, 12:33 |
| Верятно это сообщение WM_PAINT |
| Автор: Rennigth 24.11.2005, 13:41 |
| wesadex не уверен, но попробуй resize обрабатывать и внем устанавливать заного width. |
| Автор: wesadex 24.11.2005, 15:25 |
| Чей resize? Мне надо в компоненте обработчик сделать - он не может ничего знать о том, что у Скроллбокса скролл нарисовался... В том-то и проблема, что мне нужен рабочий компонент, а не компонент на раз - дляодной прикладушки! |
| Автор: Rennigth 24.11.2005, 16:32 | ||
но это скорее всего не поможет, здесь надо что-то другое ловить... попробую что-нибудь придумать попозже. |
| Автор: wesadex 25.11.2005, 08:56 |
| Можно переформулировать вопрос: Какое сообщение посылает предок контролам внутри себя, когда рисует скролл и/или когда его ресайзуют и как его правильно обработать? OnParentResize работает, кстати, только в том случае, если предку изменили размер... а в моем случае размер предка не меняется, т.е. Width и Height остаются неизменными, только скролл прорисовывается! Говорят правильность ответа зависит от правильности постановки вопроса... |
| Автор: Alexeis 25.11.2005, 10:28 |
| При появлении ScrollBar - в не отсылаются сообщения вообще а при их исчезновении посылаются WM_ERASEBKGND WM_PAINT и WM_USER + 0xB933 |