Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OnDrawColumnCell 
:(
    Опции темы
Delphist
Дата 9.1.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



В OnDrawColumnCell  я веду отрисовку грида, при потере фокуса (т.е. на фоне данного окна двигаю окно другой проги) отрисовка перестает работать. Скорее всего не посылается сообщение WM_PAINT. Вопрос: Как заставить прорисовываться грид даже если окно теряет фокус.

Это сообщение отредактировал(а) Delphist - 9.1.2007, 13:00


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Delphist
Дата 10.1.2007, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



См. рисунок там отображен момент когда я двигаю калькулятор на фоне грида

Это сообщение отредактировал(а) Delphist - 10.1.2007, 09:50

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  picture.JPG 21,85 Kb


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
aktuba
Дата 10.1.2007, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Попробуй в TForm.OnPaint вызвать OnDrawColumnCell


--------------------
user posted image
PM MAIL WWW Skype   Вверх
MetalFan
Дата 10.1.2007, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Цитата(aktuba @  10.1.2007,  09:15 Найти цитируемый пост)
... вызвать OnDrawColumnCell 

или у грида Invalidate или Refresh)

Это сообщение отредактировал(а) MetalFan - 10.1.2007, 09:26


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Delphist
Дата 10.1.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



Цитата(aktuba @  10.1.2007,  10:15 Найти цитируемый пост)
Попробуй в TForm.OnPaint вызвать OnDrawColumnCell 

1) OnPaint не вызывается при не активной форме
2)Какие же параметры мне передавать в OnDrawColumnCell.


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
aktuba
Дата 10.1.2007, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата

или у грида Invalidate или Refresh)


Цитата

1) OnPaint не вызывается при не активной форме
2)Какие же параметры мне передавать в OnDrawColumnCell. 


1. Значит надо искать какие сообщения приходят форме, когда она неактивна. К сожалению, пока не могу этим заняться...
2. А что за компонент используешь?


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Delphist
Дата 10.1.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



Цитата(aktuba @  10.1.2007,  11:04 Найти цитируемый пост)
А что за компонент используешь? 

DBGridEh. 
Вертикальные разделители рисую сам. 


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
aktuba
Дата 10.1.2007, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Попробуй так:

Код

type
  TForm1 = class(TForm)
  ...
  FOldProc: TWndMethod;
  procedure MyProc(var Mess: TMessage);
...
procedure TForm1.Create(Sender: TObject);
begin
  FOldProc := Form1.WindowProc;
  Form1.WindowProc := MyProc;
end;
...
procedure TForm1.MyProc(var Mess: TMessage);
begin
  if Mess.Msg = WM_ERASEBKGRD then
    if not Form1.Active then RepaintGrid;
  FoldProc(Mess);
end;


Я не использую DBGridEh, поэтому не знаю, какие там параметры...

Это сообщение отредактировал(а) aktuba - 10.1.2007, 10:51


--------------------
user posted image
PM MAIL WWW Skype   Вверх
MetalFan
Дата 10.1.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



aktuba, а кто будет старый обработчик вызывать?! )


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
aktuba
Дата 10.1.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Виноват, в ручную с компа переписывал. На этом нет Delphi, поэтому приходится так поступать.

Уже поправил...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Delphist
Дата 10.1.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



Цитата(aktuba @  10.1.2007,  11:52 Найти цитируемый пост)
Виноват, в ручную с компа переписывал. На этом нет Delphi, поэтому приходится так поступать.

Уже поправил... 

Не помагает твой код. Дело в том что сообщение wm_EraseBkgnd срабатывает только тогда когда я калькулятор перенашу в свободную область формы.


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Delphist
Дата 10.1.2007, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



Цитата(aktuba @  10.1.2007,  12:13 Найти цитируемый пост)
Delphist, не понял, как это? 

Очень просто. Если я такскаю калькулятор на фоне грида, то линии затираются. Если я перенесу калькулятор в свободную от компонентов область формы (грид у меня занимает не всю область) то перерисовка произойдет.


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
aktuba
Дата 10.1.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Поменяй WM_ERASEBKGRD на WM_PAINT


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Delphist
Дата 10.1.2007, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



Цитата(aktuba @  10.1.2007,  12:23 Найти цитируемый пост)
WM_PAINT 

То же самое


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
aktuba
Дата 10.1.2007, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Странно, насколько я помню, сообщение WM_PAINT посылается форме всегда, когда необходимо перерисовать форму...
Во-всяком случае, у меня, при создании пробного проекта все срабатывает...

Может у тебя где-то фильтр стоит на активность формы?


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0637 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.