![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выполнить действия при сворчивании [D7, Win95/98, WinXP]
SKIPtr © (2007-09-04 23:38:00)У меня была программа где я определил действия App....OnMinimize при нажатии кнопки свернуть всё происходит как положено Щас написал прог. которая запускает ту прогу (WinExec..) и вызываю ShowWindow(wnd, sw_MiniMize) окно сворчивается а OnMinimize почему-то не выполняется как её выполнить
SKIPtr (2007-09-06 07:09:00) [1]
> если имеется несколько окон с классом TForm, возвращается последнее
> созданное
наверно это это связано с тем что когда перебираеш окна методом Wnd := GetWindow(Wnd, gw_hWndNext) начинается с верхнего и идет глубже
SergeIT (2007-09-05 23:52:00) [2]> h := FindWindow(Form, nil) то же не то
h := FindWindow('TForm', nil); //TForm тип и имя класса окна
Обратил внимание - если
h := FindWindow('TForm', nil);
вызывается сразу после WinExec('a.exe', 0), то даже если имеется несколько окон с классом TForm, возвращается последнее созданное (хотя это неплохо бы проверить - я в ХР и далее не проверял)
Инс (2007-09-05 22:31:00) [3]
> что возращается в h
http://msdn2.microsoft.com/en-us/library/ms687393.aspx
Несмотря на то, что MSDN отвечает на этот вопрос достаточно загадочно, насколько мне известно, если вызов успешен, то WinExec возвращает дескриптор созданного процесса. Дескриптор процесса не имеет никакого отношения к дескриптору окна, совершенно разные вещи.
SKIPtr (2007-09-05 22:21:00) [4]
> И сворачивается возможно неправильно, eсли это программа
> на делфи и wnd(MainForm) - не есть главное окно
Я это тоже попрововал и это увидел сам форму сворчивать безполезно Я в описании описал эти действия с Application
> Lacmus © (05.09.07 18:38) [13]
спасибо это получилось она выполнила OnMinimize
Вопрос в продолжении h := WinExec({prog1}, 0); что возращается в h
h := FindWindow(nil, {Title prog1}) не то
h := FindWindow(Form, nil) то же не то
Lacmus (2007-09-05 18:38:00) [5]>SKIPtr (05.09.07 17:58) [11]
procedure TForm50.Button1Click(Sender: TObject);
begin
SendMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0)
end;
SergeyIT (2007-09-05 18:29:00) [6]> prog1 при этом сворачивается
И сворачивается возможно неправильно, eсли это программа на делфи и wnd(MainForm) - не есть главное окно приложения. Это на форумах не раз обсуждалось.
Я для этих целей в своих программах использовал свое сообщение (WM_USER + ...) и в обработчике (wnd - MainForm) вызывал
Application методы
Minimize
Restore
...
SKIPtr (2007-09-05 17:58:00) [7]Меня наверно не поняли несебя сворачивать надо вот подробней
давно написан программа
program prog1
....
unit1
procedure ...FormCreate;
begin
...; Application.OnMinimize := MyProc1; ...
end
Нажимаю кнопку свернуть MyProc1 выполняется Это написанно давно я ей пользуюсь
Щас решил написать
program prog2
...
unit2
procedure ...Button1Click;
begin
WinExec({prog1}, 0);
wnd := FindWindow(nil, {Title prog1})
end
procedure ...Button2Click;
begin
ShowWindow(wnd, sw_MiniMize);
end
prog1 при этом сворачивается а мне надо чтоб ещё выполнилось MyProc1
Lacmus (2007-09-05 11:44:00) [8]
procedure TForm50.ApplicationEvents1Minimize(Sender: TObject);
begin
ShowMessage('Minimize')
end;
procedure TForm50.Button1Click(Sender: TObject);
begin
WinExec(PChar(ParamStr(0)), SW_SHOWMINNOACTIVE)
end;
SKIPtr (2007-09-05 07:34:00) [9]Мне казалось что ShowWindow относиться к WinAPI это же сообщение
SKIPtr (2007-09-05 07:20:00) [10]Я послал сообщение application какое разрешение надо спросить?
Германн (2007-09-05 03:18:00) [11]
> SKIPtr (04.09.07 23:38)
>
> У меня была программа где я определил действия App.
А app ты спросил разрешение?
Германн (2007-09-05 03:08:00) [12]
> ANTPro © (05.09.07 02:25) [2]
>
> > [1] Германн © (05.09.07 00:30)
>
> ShowWindow(wnd, sw_MiniMize);
Ну так помоги автору сабжа!
Тогда ты докажешь, что сей вопрос относится именно к WinAPI.
ANTPro (2007-09-05 02:44:00) [13]> [4] Инс © (05.09.07 02:31)
команды - функция или процедура (в данном контексте)
ЗЫ А стоит ли придираться к словам?
Инс (2007-09-05 02:31:00) [14]
> апи команда
Никогда не слышал про апи-команды...
ANTPro (2007-09-05 02:26:00) [15]Это же целая апи команда %)
ANTPro (2007-09-05 02:25:00) [16]> [1] Германн © (05.09.07 00:30)
ShowWindow(wnd, sw_MiniMize);
Германн (2007-09-05 00:30:00) [17]А при чём тут WinAPI?