![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перехватить событие максимизации формы? [D7, XP]
TAzimut © (2009-12-10 11:10:00)Как перехватить событие максимизации формы для выполнения своего действия в программе? Нужно сделать автовыравнивание колонок ListView.
TAzimut (2009-12-10 11:49:00) [1]Почему-то не пашет перехват, никаких действий при максимизации прога не делает :( Сделал так:
procedure WMSysCommand(var msg: TWmSysCommand); message WM_SYSCOMMAND; закинул в приват деклар.
Потом написал следующее:
procedure ListTouch;
begin
Form1.ListView1.SetFocus;
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_ADD, 0, 0, 0);
keybd_event(VK_ADD, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
end;
procedure TForm1.WMSyscommand(var msg: TWmSysCommand);
begin
case (msg.CmdType and $FFF0) of
{SC_MINIMIZE:
SC_RESTORE: }
SC_MAXIMIZE: ListTouch;
end;
inherited;
end;
TAzimut (2009-12-10 11:34:00) [2]>Рамиль. Спасибо Рамиль! Попробую,отпишусь..
oldman (2009-12-10 11:23:00) [3]OnResize?
Рамиль (2009-12-10 11:23:00) [4]
procedure WMSysCommand(var msg: TWmSysCommand); message WM_SYSCOMMAND;
...
procedure TForm1.WMSyscommand(var msg: TWmSysCommand);
begin
case (msg.CmdType and $FFF0) of
SC_MINIMIZE:
SC_RESTORE:
SC_MAXIMIZE:
end;
inherited;
end;