Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];

Вниз

Активировать форму   Найти похожие ветки 

 
Чапаев ©   (2006-07-10 13:36) [0]

В определённый момент приложение показывает форму. При этом кнопка, соответствующая этой форме появляется на панели задач, мигает. Если нажать клавишу на клавиатуре, сообщение о нажатии передаётся рабочему столу. Если нажать кнопку мыши на форме, панель задач скрывается (ну или не скрывается, если автоскрытие не включено ;-) ). Для активации формы при показе используется такой код:

procedure TdlgGetKey.ActivateForm;
var
 R:TRect;
begin
 SetWindowPos(Handle,HWND_TOPMOST,(Screen.Width-Width) div 2,(Screen.Height-Height) div 2,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);
 SetForegroundWindow(Handle);
 Windows.SetFocus(Handle);
 R.Left:=(Screen.Width-ClientWidth) div 2+5;
 R.Right:=(Screen.Width+ClientWidth) div 2-5;
 R.Top:=(Screen.Height-Height) div 2+GetSystemMetrics(SM_CYCAPTION)+5;
 R.Bottom:=(Screen.Height+Height) div 2-5;
 ClipCursor(@R);
end;

Чего не хватает? :-)


 
capkoh ©   (2006-07-10 16:29) [1]

И в итоге она не активируется? :-)

А нужно вызывать SetForegroundWindow? Без нее не работает?
Если нет, то я бы посоветовал поменять местами первые 2 строки. Сначала SetForegroundWindow, а потом уже SetWindowPos.


 
Ketmar ©   (2006-07-10 19:03) [2]

ещё можно попробовать привинтить поток ввода. а вообще -- гугль. где-то там я встречал по похожему поводу детальное исследование. %-)


 
Leonid Troyanovsky ©   (2006-07-10 19:56) [3]


> Чапаев ©   (10.07.06 13:36)  

> Чего не хватает? :-)


Видимо, не удовлетворены ограничения MS.
RTFM: msdn SetForegroundWindow.

--
Regards, LVT.


 
второе явление Чапаева народу   (2006-07-11 10:35) [4]


> А нужно вызывать SetForegroundWindow? Без нее не работает?

И с ней, и без неё не работает. По крайней мере, не работает так, как мне хотелось бы.


> RTFM: msdn SetForegroundWindow.

Та уже RTFM (перед тем, как вызов указанной функции вставить)... Ну что ж, попытаемся ещё.


 
второе явление Чапаева народу   (2006-07-11 10:37) [5]

В принципе, проблема решается вызовом AllocConsole;FreeConsole; после показа формы, но это ж всё равно, что гланды через ухо удалять...


 
Ketmar ©   (2006-07-11 17:08) [6]

ой. до такого способа я не додумался... %-)



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

Форум: "Основная";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.039 c
2-1154634657
Drashka
2006-08-03 23:50
2006.08.27
BTClasses


1-1152890545
oleggar
2006-07-14 19:22
2006.08.27
как упростить ввод ?


2-1155025500
Ega23
2006-08-08 12:25
2006.08.27
FindComponent и UpperCase


2-1155121485
FASe
2006-08-09 15:04
2006.08.27
SearchingPoint


2-1154385873
Drashka
2006-08-01 02:44
2006.08.27
BlueTooth





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский