| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Какое сообщение ловить, при перерисовке |
| Автор: neutrino 17.2.2003, 17:47 |
| Приветствую! У меня такой вопрос: какое сообщение ловить, при перерисовке родителя? Вот стоит у меня на форме куча моих контролов, и они меняют свое положение. Это приводит к перерисовке формы (вернее ее части). Мне нужно, чтобы один компонент перерисовывался при этом, но т.к. он находится "над" контролами меняющими свое положение, его перерисовка автоматически не происходит. Как можно отловить это дело? Заранее благодарен. P.S. Ах да, забыл, я ловлю сообщение WM_ERASEBKGND может быть нужно отловить сообщение из группы CM_ ...? |
| Автор: Dayana 17.2.2003, 23:34 |
| neutrino, тот, который ты хочешь перерисовать является родителем контролов, которые меняют свое положение и он находится на форме? Вообще при перерисовки ко всем приходит WM_PAINT... Ты ему и посылай это сообщение... |
| Автор: neutrino 18.2.2003, 02:49 |
| Da, s pervym ty menja pravil'no ponjala. No otkuda ja mogu uznat', chto roditel' pererisovalsja? Detjam posylaetsja soobshenie, kogda roditelju prihodit WM_PAINT? |
| Автор: Dayana 18.2.2003, 18:17 |
| Ты можешь отловить событии, когда перерисовываются дети, т.е. когда приходит сообщение перерисоваться. Вот тогда и посылай родителю тоже сообщение перерисоваться. Или просто в методе перерисовки ребенка вызови метод перерисовки родителя. Тогда получится, что при каждой перерисовки ребенка родитель будет перерисовываться. |
| Автор: neutrino 19.2.2003, 22:23 |
| 2Dayana: А если я не могу изменять код детей? Возможно я непонятно выразился. Попробую пояснить свою проблему подробнее. На самом деле я все еще занимаюсь разработкой прозрачного компонента, наследованного от TCustomControl а не TGraphicControl (у последнего достаточно убрать csOpaque из свойства ControlStyle). И совсем недавно, я обнаружил глюк в своем компоненте: он неперерисовывается, при изменении положения других компонентов-детей "под" ним. Я прилагаю два изображения, иллюстрирующие этот побочный эффект. ![]() До перемещения кнопки компонент невиден. ![]() Но после перемещения, все старания коту под хвост Как видно из этих изображений, на форме (родитель) есть 3 компонента - рисунок (TImage), кнопка (TButton) и мой прозрачный компонент (TTransparentControl), причем они расположены так: на форме TImage на нем TBUtton а сверху TTransparentControl (я его специально отметил прямоугольником, иначе он был бы невидим |