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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2009, 02:51   #1
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию Восстановление окна на середину экрана.

Суть в чем. Есть программа. Always on top.

После определенных действий она перемещается за левый край экрана, так что остается лишь небольшой край от нее.

Как сделать так чтобы при наведении курсора к левому краю экрана (или хотя бы при наведении курсора на видимый край программы) она восстанавливалась на середину. Интересует как узнать что курсор заведен на максимум к левому краю экрана или находится на форме программы (если кто подскажет оба вар-та буду благодарен).
Airou вне форума Ответить с цитированием
Старый 27.10.2009, 02:59   #2
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Код:
 Form1.left:=1  Form1.top:=1
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 27.10.2009, 03:16   #3
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

Цитата:
Сообщение от HellMercenariess Посмотреть сообщение
Код:
 Form1.left:=1  Form1.top:=1
КО?(и то не на центр восстановишь)
Меня интересует именно последнее предложение в моем посте.
Airou вне форума Ответить с цитированием
Старый 27.10.2009, 08:04   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
procedure TForm1.FormMouseLeave(Sender: TObject);
begin
 if form1.Left<0 then form1.Position:=poDesktopCenter;
end;
SERG1980 вне форума Ответить с цитированием
Старый 27.10.2009, 14:40   #5
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

попробуйте так:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var h:integer;
begin
if mouse.CursorPos.X> Monitor.Width-20 then
begin
h:=FindWindow(nil, 'Always on top'); //// здесь введите точное значение зоголовка окна например у блокнота это Безымянный - Блокнот
SetWindowPos(h, HWND_BOTTOM, 1, 1, 20, 20, swp_nosize);////здесь устанавливаем позицию
Application.ProcessMessages;
end;
end;
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]

Последний раз редактировалось Volt; 27.10.2009 в 15:29.
Volt вне форума Ответить с цитированием
Старый 27.10.2009, 15:40   #6
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

Все спасибо уже знаю как сделать.
Airou вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Восстановление данных FANATID Компьютерное железо 7 25.02.2009 12:31
Размер окна в зависимости от размера окна Reverent JavaScript, Ajax 1 02.02.2008 15:49
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13
Восстановление Elm0 Компьютерное железо 3 30.05.2007 07:42