Главная страница
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.023 c
1-1079598156
Asdor
2004-03-18 11:22
2004.04.04
Объявлен ли IStream в какой-нибудь библиотеке типов?


14-1078345492
lak-b
2004-03-03 23:24
2004.04.04
вопросы хтмл


11-1059120388
Armaniak
2003-07-25 12:06
2004.04.04
Что за параметры требуются для выполнения Execute в KOLSLQuery


14-1078526258
Мазут Береговой
2004-03-06 01:37
2004.04.04
Что скажете вот на это? Читайте по ссылке...


1-1079168920
Vemer
2004-03-13 12:08
2004.04.04
Как правильно объявить процедуру...