| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Узнать когда окончилась отрисовка? |
| Автор: Grol 13.1.2007, 06:55 |
| Уважаемые модераторы, ответьте пожалуйста на вопрос: как узнать что DBGrid отрисовался? Т.е. на форме есть DBGrid, когда форма на экране отобразилась на ней отобразился DBGrid. И нужно выдать сообщение в момент окончания отрисовки DBGrid'a.... как это сделать я не знаю.... может знает кто другой.... За любую помощь буду очень благодарен! |
| Автор: aktuba 13.1.2007, 08:36 |
| Не сталкивался, но первая мысль, пришедшая в голову - проверять отрисовалась ли последняя ячейка (нижняя правая)... Еще, как вариант, проверять, что программа простаивает... |
| Автор: Alexeis 13.1.2007, 10:47 |
| Grol, обработчик onPaint как раз и вызывается после окончания отрисовки. |
| Автор: Sunvas 13.1.2007, 12:28 |
Вот этого не совутую делать. Если ты будешь мессаги выдавать когда произошла отрисовка, то пользователь будет только то и делать что кликать "ОК". |
| Автор: Grol 13.1.2007, 20:24 |
| Спасибо всем тем кто принимает обсуждение в вопросе Добавлено @ 20:25 А может я просто слеп как крот |
| Автор: Sunvas 13.1.2007, 20:31 |
Самостоятельно ловить это сообщение и что-то делать. Добавлено @ 20:31 Ща. Набросаю. |
| Автор: Sunvas 13.1.2007, 20:46 | ||
|
| Автор: Grol 13.1.2007, 21:59 |
| Ага спасибо сейчас попробую! |
| Автор: Sunvas 13.1.2007, 22:13 |
| Отпишись, когда все сделаешь. |
| Автор: bems 14.1.2007, 00:58 |
| Вроде да, ожидать этого было бы логично... |
| Автор: Grol 15.1.2007, 07:54 | ||
Sunvas все получилось что я хотел! Спасибо! А как в этом коде
узнать от какого компонента поступило сообщение? То есть на форме у меня несколько StringGridov. И мне нужно узнать какой компонент сейчас отрисовывается? Если бы у msg было такое свойство бы parent или owner, а то ничего же нет. Извините за мои глупые вопросы! |
| Автор: Alexeis 15.1.2007, 10:41 |
| Если действия разные, то логично делать разные обработчики для каждого из компонентов. Иначе прийдется искать нужный компонент в списке, а это лишнее процессорное время. Одно замечание. После замены функции обработки сообщений, нельзя будет уже производить определенных действий с самим StringGrid ом. Я имею ввиду те действия которые приводят к пересозданию его окна, потому что пересозданное окно будет иметь уже старый обработчик, а новый попросту не будет вызываться. |
| Автор: Sunvas 15.1.2007, 13:24 |
А что проверять-то? От какому компоненту присвоил - тому и пренадлежит. Если же хочется сделать универсальную процедуру для всех - то WindowProc не выход. Надо либо экспериментировать с SetWindowLong, или писать наследника. |
| Автор: Alexeis 15.1.2007, 13:41 | ||
Гм... сам не лазил, но где-то читал, сейчас никак не могу найти где |
| Автор: Grol 15.1.2007, 23:43 |
| Спасибо всем кто помог мне....пока помощи больше не нужно |