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

Вниз

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

 
Жорик   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.077 c
1-1078935358
Александр1
2004-03-10 19:15
2004.04.04
Работа с Word


14-1078933866
menart
2004-03-10 18:51
2004.04.04
Рыбалка :)


1-1079594675
Billy
2004-03-18 10:24
2004.04.04
Как узнать существует ли данная форма???


9-1064428634
BANick
2003-09-24 22:37
2004.04.04
реализация Reflection в OpenGl


1-1079255371
Hlado
2004-03-14 12:09
2004.04.04
Вставить из файла в TMemo