Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Про перехват системных сообщений...


Kettle of delphi ©   (2002-03-05 15:45:00) 

Вот:

...
...
...

private
{ Private declarations }
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;

...
...
...

procedure TForm1.WMSysCommand;
begin
Edit1.Text := IntToStr(Msg.CmdType);
inherited;
end;


...
...
...


А нельзя ли как-нибудь сделать, чтобы получать не числа, а слова (например: SC_MINIMIZE, SC_MAXIMIZE, SC_CLOSE)?


Kettle of delphi   (2002-03-05 17:30:00) [1]

Ух ты, какой фокус с Ctrl + Click! :)))


Виктор Щербаков   (2002-03-05 16:15:00) [2]


> Я имел в виду, что программой как раз буду пользоваться,
> чтобы выяснить эти сымые SC_MINIMIZE, SC_MAXIMIZE, SC_CLOSE
> и другие слова-команды

Это не слова комманды. Чтобы увидеть, что это такое - в редакторе кода сделай на них Ctrl + Click.

> Но, может быть, виндовс только и посылает индексы, а сами
> слова - это лишь "для удобства"

Так оно и есть.


Kettle of delphi   (2002-03-05 16:08:00) [3]

:))) Я имел в виду, что программой как раз буду пользоваться, чтобы выяснить эти сымые SC_MINIMIZE, SC_MAXIMIZE, SC_CLOSE и другие слова-команды! На данный момент я могу, как видно из кода, узнать индекс сообщения (Integer). Как узнать КОМАНДНОЕ СЛОВО - вот, в чем вопрос :)

Но, может быть, виндовс только и посылает индексы, а сами слова - это лишь "для удобства" и связаны они только с конкретной средой разработки? Если так, тогда вопрос: истинно ли то, что индекс на, например, "закрытие" окна во всех версиях виндовс одинаков?


Виктор Щербаков   (2002-03-05 15:50:00) [4]

procedure TForm1.WMSysCommand;
begin
case Msg.CmdType of
SC_MINIMIZE:
Edit1.Text := "SC_MINIMIZE";
SC_MAXIMIZE:
Edit1.Text := "SC_MAXIMIZE";
SC_CLOSE:
Edit1.Text := "SC_CLOSE";
end;
inherited;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо