Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 27.05.2010, 11:51   #1
HotGod
 
Аватар для HotGod
 
Регистрация: 25.05.2010
Сообщений: 6
Сообщение события разворачивания и сворачивания окон

Господа, подскажите:
Необходимо перехватить событие разворачивания окна, причем не по факту разворачивания (я-развернулось), а именно перед самим раворачиванием (я ща развернусь).
delphi 7. компонент ApplicationEvents пробовал - он сообщает только по факту разворачивания окна
HotGod вне форума Ответить с цитированием
Старый 27.05.2010, 13:04   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,916
По умолчанию

В DelphiWorld это очень хорошо описано.
Кому iPhone и Swarovski, кому Афон и Саровский...
Kotofff вне форума Ответить с цитированием
Старый 27.05.2010, 13:38   #3
HotGod
 
Аватар для HotGod
 
Регистрация: 25.05.2010
Сообщений: 6
По умолчанию

пример суперский, спасибо.
но не работает на разворачивание.
т.е. свернул окно - все гуд, событие перехватилось. кликаю на программку в панели задач - разворачивается без вопросов. как бы сейчас это событие поймать...

Всё, разобрался.
Кому интересно вот код, при разворачивании из панели задач *ПЕРЕД* отображением окна показывает сообщение, и лишь потом разворачивает окно:
Код:
type
  TMainForm = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Privte declarations }
    function AppHook(var msg: TMessage): boolean;
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);
begin
  Application.HookMainWindow(AppHook) ;
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
  Application.UnhookMainWindow(AppHook) ;
end;

function TMainForm.AppHook(var msg: TMessage): boolean;
begin
  result := false;
  if (msg.Msg = WM_SYSCOMMAND) and (msg.WParam = SC_RESTORE) then
   ShowMessage('Hello');
end;
end.

Последний раз редактировалось Stilet; 27.05.2010 в 15:01.
HotGod вне форума Ответить с цитированием
Старый 27.05.2010, 14:43   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Олололо
Поржал над хуком собсвенной формы) Ради инетерса проверил - не работает) Это ж делается черрез обычный message WM_SYSCOMMAND
Код:
type
TForm1 = class(TForm)
private
{ Privte declarations }
procedure Restore(var msg: TWMSysCommand); message WM_SYSCOMMAND;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure Tform1.Restore(var msg: TWMSysCommand);
begin
  if msg.CmdType=SC_RESTORE then
  begin
    ShowMessage('asd');
  end;
  inherited;
end;
TwiX вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События yarilo JavaScript, Ajax 3 29.01.2010 00:18
Проверка окон HunterMan Win Api 1 25.06.2008 23:56
VB код сворачивания формы в трей, или просто свернуть sqvair Помощь студентам 4 04.01.2008 21:21
Открытие окон Pekc JavaScript, Ajax 3 25.11.2007 20:56
Сворачивание окон Legat Win Api 2 08.10.2007 16:36


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS