-
demon © (05.09.09 03:27) [0]Как через api обработать нажатие в окне на кнопку минимизации? т.е. какое событие за это отвечает?..
-
Ruzzz (05.09.09 05:23) [2]procedure WMGetSysCommand(var Message : TMessage); message WM_SYSCOMMAND;
procedure TfrmMain.WMGetSysCommand(var Message: TMessage);
begin
if (Message.WParam = SC_MINIMIZE) and FSettings.MinimizeToTray then
Application.MainForm.Visible := False
else if (Message.WParam = SC_CLOSE) and FSettings.CloseToTray then
Application.MainForm.Visible := False
else
inherited;
end; -
Юрий Зотов © (05.09.09 17:26) [3]> Ruzzz (05.09.09 05:23) [2]
In WM_SYSCOMMAND messages, the four low-order bits of the wParam parameter are used internally by the system. To obtain the correct result when testing the value of wParam, an application must combine the value 0xFFF0 with the wParam value by using the bitwise AND operator.if Message.WParam and $FFF0 = SC_MINIMIZE ... -
demon © (06.09.09 02:26) [4]Что-то не получаеться сделать так как хотелось, а хотелось чтобы окно закрывалось вместо сворачивания...
-
Ruzzz (06.09.09 16:31) [5]вместо
if (Message.WParam = SC_MINIMIZE) and FSettings.MinimizeToTray then
Application.MainForm.Visible := False
написать
if (Message.WParam = SC_MINIMIZE) then Close;
Не проверял :) Попробуйте сами -
Ruzzz (06.09.09 16:51) [6]ах да if (Message.WParam and $FFF0 = SC_MINIMIZE) then Close;
-
clickmaker © (08.09.09 16:27) [7]> хотелось чтобы окно закрывалось вместо сворачивания
зачем?
оно в трэй что-ли сворачивается? -
demon © (12.09.09 05:18) [8]
> зачем?оно в трэй что-ли сворачивается?
Не совсем, но чтото вроде того. Оно сварачиваеться в меленькую панельку ну например как в аимпе ;)