Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.18;
Скачать: CL | DM;

Вниз

Как выполнить действия при сворчивании   Найти похожие ветки 

 
SKIPtr   (2007-09-04 23:38) [0]

У меня была программа где я определил действия App....OnMinimize при нажатии кнопки свернуть всё происходит как положено Щас написал прог. которая запускает ту прогу (WinExec..) и вызываю ShowWindow(wnd, sw_MiniMize) окно сворчивается а OnMinimize почему-то не выполняется как её выполнить


 
Германн ©   (2007-09-05 00:30) [1]

А при чём тут WinAPI?


 
ANTPro ©   (2007-09-05 02:25) [2]

> [1] Германн ©   (05.09.07 00:30)

ShowWindow(wnd, sw_MiniMize);


 
ANTPro ©   (2007-09-05 02:26) [3]

Это же целая апи команда %)


 
Инс ©   (2007-09-05 02:31) [4]


> апи команда

Никогда не слышал про апи-команды...


 
ANTPro ©   (2007-09-05 02:44) [5]

> [4] Инс ©   (05.09.07 02:31)

команды - функция или процедура (в данном контексте)
ЗЫ А стоит ли придираться к словам?


 
Германн ©   (2007-09-05 03:08) [6]


> ANTPro ©   (05.09.07 02:25) [2]
>
> > [1] Германн ©   (05.09.07 00:30)
>
> ShowWindow(wnd, sw_MiniMize);

Ну так помоги автору сабжа!
Тогда ты докажешь, что сей вопрос относится именно к WinAPI.


 
Германн ©   (2007-09-05 03:18) [7]


> SKIPtr   (04.09.07 23:38)
>
> У меня была программа где я определил действия App.

А app ты спросил разрешение?


 
SKIPtr   (2007-09-05 07:20) [8]

Я послал сообщение application какое разрешение надо спросить?


 
SKIPtr   (2007-09-05 07:34) [9]

Мне казалось что ShowWindow относиться к WinAPI  это же сообщение


 
Lacmus ©   (2007-09-05 11:44) [10]



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 17:58) [11]

Меня наверно не поняли несебя сворачивать надо вот подробней
давно написан программа

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


 
SergeyIT ©   (2007-09-05 18:29) [12]

> prog1 при этом сворачивается
И сворачивается возможно неправильно, eсли это программа на делфи и wnd(MainForm) - не есть главное окно приложения. Это на форумах не раз обсуждалось.
Я для этих целей в своих программах использовал свое сообщение (WM_USER + ...) и в обработчике (wnd - MainForm) вызывал
Application методы
Minimize
Restore
...


 
Lacmus ©   (2007-09-05 18:38) [13]

>SKIPtr   (05.09.07 17:58) [11]



procedure TForm50.Button1Click(Sender: TObject);
begin
 SendMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0)
end;



 
SKIPtr   (2007-09-05 22:21) [14]


> И сворачивается возможно неправильно, 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) то же не то


 
Инс ©   (2007-09-05 22:31) [15]


> что возращается в h

http://msdn2.microsoft.com/en-us/library/ms687393.aspx

Несмотря на то, что MSDN отвечает на этот вопрос достаточно загадочно, насколько мне известно, если вызов успешен, то WinExec возвращает дескриптор созданного процесса. Дескриптор процесса не имеет никакого отношения к дескриптору окна, совершенно разные вещи.


 
SergeIT   (2007-09-05 23:52) [16]

> h := FindWindow(Form, nil) то же не то
h := FindWindow("TForm", nil); //TForm тип и имя класса окна
Обратил внимание - если
h := FindWindow("TForm", nil);
вызывается сразу после WinExec("a.exe", 0), то даже если имеется несколько окон с классом TForm, возвращается последнее созданное (хотя это неплохо бы проверить - я в ХР и далее не проверял)


 
SKIPtr   (2007-09-06 07:09) [17]


>  если имеется несколько окон с классом TForm, возвращается последнее
> созданное


наверно это это связано с тем что когда перебираеш окна методом Wnd := GetWindow(Wnd, gw_hWndNext) начинается с верхнего и идет глубже



Страницы: 1 вся ветка

Текущий архив: 2008.05.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
15-1207470033
{RASkov}
2008-04-06 12:20
2008.05.18
GA-965P + WD2500JS


2-1208786099
Int23
2008-04-21 17:54
2008.05.18
Нужна функция рекурсивного каталога и всех вложенных в него


2-1208780311
jorgunited
2008-04-21 16:18
2008.05.18
выборка во время транзакции


15-1207046845
pwr
2008-04-01 14:47
2008.05.18
Что б добавить?


3-1197064145
wipr
2007-12-08 00:49
2008.05.18
Проблема с открытием pFIBDataSet по FB 1.5.1





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский