Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.09.2010, 22:21
Ama Ama вне форума
Активный
 
Регистрация: 15.07.2008
Сообщения: 260
Репутация: 23
По умолчанию не генерируется WM_PAINT

Есть главная форма и не главная: во второстепенной форма разместил PopupMenu...генерирую событие нажатия пункта меню:
Код:
procedure TIconForm.N1Click(Sender: TObject);
begin
 case IndIco of
  0, 1, 2: begin
            MessageBox(Handle, PChar('Этот значок нельзя удалить'),
                       PChar('Внимание !!!'), MB_OK or MB_ICONHAND);
            Application.MainForm.Tag:= MAINFRM_REFRESH shl 16;
            SendMessage(Application.MainForm.Handle, WM_PAINT, 0, 0);
            exit;
           end;
 end;
 Application.MainForm.Tag:= (FRM_FREE shl 16) and IndIco;
 doHide;
 SendMessage(Application.MainForm.Handle, WM_PAINT, 0, 0);
end;
На главной форме генерирую событие:
Код:
procedure TForm1.FormPaint(Sender: TObject);
 var i: integer;
begin
 i:= Hi(Tag);
 case i of
  MAINFRM_REFRESH: DoRefresh;
 end;
end;
DoRefresh-это моя проца обновления компонентов окон. Но вот проблема в том что в RunTime событие TForm1.FormPaint(Sender: TObject) не генерируется.....константа MAINFRM_REFRESH обявлена...не могу понять в чем дело TForm1 главная форма...
Delphi7, Win7
__________________
APPLICATION.TERMINATOR
Ответить с цитированием
  #2  
Старый 28.09.2010, 23:43
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

методы, ловящие сообщения надо по-особому обьявлять:
Код:
TForm = class(TForm)
...
protected
  procedure PaintProc(var Msg: TMessage); message WM_PAINT;
а событие OnFormPaint вызывается при фактической отрисовке формы, например, если обратно из-за границ экрана форму перетащить
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #3  
Старый 29.09.2010, 22:08
Ama Ama вне форума
Активный
 
Регистрация: 15.07.2008
Сообщения: 260
Репутация: 23
По умолчанию

Ща попробую....
__________________
APPLICATION.TERMINATOR
Ответить с цитированием
  #4  
Старый 30.09.2010, 00:46
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

еще можно метод вызывать явно, без сообщений
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025