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

Вниз

Как сделать форму активной?   Найти похожие ветки 

 
Жорик   (2004-03-14 16:51) [0]

Уважаемые! Помогите, как сделать так, чтобы моё приложение постоянно было активной? Заранее благодарен.


 
Юрий Зотов ©   (2004-03-14 19:09) [1]

Зачем? Вот можете сказать - зачем это надо?

Представьте - у Вас на компе висит программа, которая все время нахально лезет вперед и держит на себе фокус ввода. Работать с другими программам стало практически невозможно.

Что Вы сделаете?


 
Жорик   (2004-03-14 19:32) [2]

Ну как сказать, ну хотябы можно сделать, чтобы в определенное врямя прога становилась активной?


 
Юрий Зотов ©   (2004-03-14 19:44) [3]

Не самый лучший, но зато самый простой способ - проверять время по таймеру и потом Application.BringToFront.


 
Gero ©   (2004-03-14 19:48) [4]

> в определенное врямя

Имеется ввиду системное время?


 
RomeoGolf   (2004-03-15 17:21) [5]

Делал я такую фишку одному товарищу- имитатор сбоев системы, шутка для защиты от надоедливого соседа, фишка стартовала в автозапуске, не показывалась в панели и через некоторое время выводила сообщения об ошибках, псевдовиндовские, после 4-5-го отправляла систему на перезапуск, соседу объясняли, что машина глючит, пора винды переставлять, и сегодня посидеть до полдвенадцатого не получится. Короче, сообщения я держал на поверхности следующим образом:
 
SetWindowPos(Form1.Handle,hwnd_TopMost,100,200,500,100,SWP_NOMOVE);

Координаты и размер - детали, у меня были переменные,в зависимости от сообщения, а параметры функции выбери из help"а, там много вариантов, мне вполне подходил приведенный.
Функцию я в первой версии вызывал периодически по таймеру, а потом стал обрабатывать OnDeactivate приложения:

...
public
   { Public declarations }
   procedure AppDeactivate(Sender: TObject);
...

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnDeactivate := AppDeactivate;
end;

procedure TForm1.AppDeactivate(Sender: TObject);  //
begin
   SetWindowPos(Form1.Handle,hwnd_TopMost,
        100,200,500,100,SWP_NOMOVE);
end;

В этом варианте она всегда поверх, но без фокуса ввода за ненадобностью. Фокус, думаю, тоже вещь побеждаемая.


 
Deflorator++   (2004-03-15 23:51) [6]

CHDelphiPack
компонент CHForm
свойство OnTopMode


 
EXE7   (2004-03-16 00:12) [7]

Да лучше TopMost делать,
чем активировать свое окно(фокус)по таймеру {дурной тон кстати}



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

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

Наверх





Память: 0.46 MB
Время: 0.04 c
7-1074346348
Magician
2004-01-17 16:32
2004.04.04
Как отследить изменение реестра на подобии программы Regmon


7-1074893939
Raki
2004-01-24 00:38
2004.04.04
Имя процесса


1-1079156477
Kair
2004-03-13 08:41
2004.04.04
Splash screen


7-1075097747
mich@el
2004-01-26 09:15
2004.04.04
Определение занятости файла


1-1079605918
Pank
2004-03-18 13:31
2004.04.04
Взаимодействие приложений





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