| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > OnDrawColumnCell |
| Автор: Delphist 9.1.2007, 12:59 |
| В OnDrawColumnCell я веду отрисовку грида, при потере фокуса (т.е. на фоне данного окна двигаю окно другой проги) отрисовка перестает работать. Скорее всего не посылается сообщение WM_PAINT. Вопрос: Как заставить прорисовываться грид даже если окно теряет фокус. |
| Автор: Delphist 10.1.2007, 08:53 |
| См. рисунок там отображен момент когда я двигаю калькулятор на фоне грида |
| Автор: aktuba 10.1.2007, 09:15 |
| Попробуй в TForm.OnPaint вызвать OnDrawColumnCell |
| Автор: MetalFan 10.1.2007, 09:26 |
или у грида Invalidate или Refresh) |
| Автор: Delphist 10.1.2007, 10:00 |
1) OnPaint не вызывается при не активной форме 2)Какие же параметры мне передавать в OnDrawColumnCell. |
| Автор: aktuba 10.1.2007, 10:04 | ||||
1. Значит надо искать какие сообщения приходят форме, когда она неактивна. К сожалению, пока не могу этим заняться... 2. А что за компонент используешь? |
| Автор: Delphist 10.1.2007, 10:20 |
DBGridEh. Вертикальные разделители рисую сам. |
| Автор: aktuba 10.1.2007, 10:33 | ||
Попробуй так:
Я не использую DBGridEh, поэтому не знаю, какие там параметры... |
| Автор: MetalFan 10.1.2007, 10:47 |
| aktuba, а кто будет старый обработчик вызывать?! ) |
| Автор: aktuba 10.1.2007, 10:52 |
| Виноват, в ручную с компа переписывал. На этом нет Delphi, поэтому приходится так поступать. Уже поправил... |
| Автор: Delphist 10.1.2007, 11:21 |
Очень просто. Если я такскаю калькулятор на фоне грида, то линии затираются. Если я перенесу калькулятор в свободную от компонентов область формы (грид у меня занимает не всю область) то перерисовка произойдет. |
| Автор: aktuba 10.1.2007, 11:23 |
| Поменяй WM_ERASEBKGRD на WM_PAINT |
| Автор: Delphist 10.1.2007, 15:48 |
То же самое |
| Автор: aktuba 10.1.2007, 15:59 |
| Странно, насколько я помню, сообщение WM_PAINT посылается форме всегда, когда необходимо перерисовать форму... Во-всяком случае, у меня, при создании пробного проекта все срабатывает... Может у тебя где-то фильтр стоит на активность формы? |
| Автор: aktuba 10.1.2007, 17:16 |
| Попробуй дебаггером посмотреть, приходит ли сообщение в MyProc и как оно обрабатыватся... |