Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2011, 11:10   #1
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию Программа всегда на первом плане

Добрый день! подскажите пожалуйста как сделать чтобы моя программа была на 1 плане, тобиш при нажатии либо запуске другой программы моя не уходила на 2 план тем самым переставая действовать?
Lorden вне форума Ответить с цитированием
Старый 28.01.2011, 11:24   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
Form1.FormStyle:= fsStayOnTop;
Но это не лучший вариант. Я использую компоненты CH, где есть свойство ForceStayOnTop. Т.е. форма принудительно будет всегда наверху.
_SERGEYX_ вне форума Ответить с цитированием
Старый 28.01.2011, 11:34   #3
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Никак.
Всегда найдется другая (не твоя) программа, желающая того же самого.
И как вы с ней будете делить одеяло ?)
mss вне форума Ответить с цитированием
Старый 28.01.2011, 11:39   #4
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Но это не лучший вариант. Я использую компоненты CH, где есть свойство ForceStayOnTop. Т.е. форма принудительно будет всегда наверху.
хм ну программка на 1 плане остаётся только она перестаёт быть активна и не ловит не каких действий(нажатие клавиш) а как бы сделать чтобы программа была активна?
Как так никак?=) а что за компонент такой CH?
Цитата:
Сообщение от mss Посмотреть сообщение
Никак.
Всегда найдется другая (не твоя) программа, желающая того же самого.
И как вы с ней будете делить одеяло ?)
в нашей жизни всё возможно=) ктому же у меня есть пример такой программы... вот тока терь хочу узнать как это делается=)

Последний раз редактировалось Lorden; 28.01.2011 в 11:42.
Lorden вне форума Ответить с цитированием
Старый 28.01.2011, 11:46   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а как бы сделать чтобы программа была активна?
Пуф.... Ну в таймере например поставь Setfocus на программу...
Но только я тогда не понимаю как с остальными окнами работать будет пользователь
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.01.2011, 12:01   #6
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

хм... походу я чутка ошибся, нужно так чтобы программа могла выполнять действия находясь на 2 плане, например при нажатии клавиши S программа выполнила действие Timer1.Enabled:=false; а в данный момент у меня получается так что это возможно только тогда когда программа находится на 1 плане.
Lorden вне форума Ответить с цитированием
Старый 28.01.2011, 15:57   #7
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Попробуйте, должно помочь :
Код:
with Form1 do
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
asmodey1 вне форума Ответить с цитированием
Старый 28.01.2011, 16:04   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
находясь на 2 плане, например при нажатии клавиши S программа выполнила действие
Для этого существует глобальный хук на клавиатуру. Нажатие клавиши будет отлавливаться независимо от положения окна и даже если форма отсутствует как таковая.
_SERGEYX_ вне форума Ответить с цитированием
Старый 28.01.2011, 17:30   #9
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Для этого существует глобальный хук на клавиатуру. Нажатие клавиши будет отлавливаться независимо от положения окна и даже если форма отсутствует как таковая.
эм а примерчик не могли бы дать? ато не разу не использовал такого.... извините за такое кол-во вопросов
Lorden вне форума Ответить с цитированием
Старый 28.01.2011, 17:40   #10
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

В Form1.Create или в Form1.Activate пропишите
SetWindowPos(Form1.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE)
и будет Вам счастье. Только вот если будет такое же окно у другой программы, они будут перекрывать друг друга.
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всегда на переднем плане Rapala Общие вопросы Delphi 10 28.04.2010 16:54
немного доработать код, в плане вывода самого часто употребляемого слова! Ker_33rus Общие вопросы C/C++ 6 17.02.2010 21:16
Решаю любые проблемы. В плане программирования. Vedrus Фриланс 1 31.05.2008 04:57
Всегда позади и всегда впереди в одном приложении Legat Win Api 4 27.10.2007 15:48