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

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

Как выполнить действия при сворчивании [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?


Наверх

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