Главная страница
    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.032 c
1-1079421922
Sergeii
2004-03-16 10:25
2004.04.04
Podskazhite shkolniku Fast report


1-1079696024
zamkom
2004-03-19 14:33
2004.04.04
Как разобраться с датой


1-1079021304
opoloxai
2004-03-11 19:08
2004.04.04
Типизированный поток.


14-1078661915
dzmitry[li]
2004-03-07 15:18
2004.04.04
Delphi8


14-1078481722
TUser
2004-03-05 13:15
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский