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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2014, 10:04   #1
Rec0il
Пользователь
 
Регистрация: 16.03.2013
Сообщений: 69
По умолчанию Сделать окно формы активной при form1.show;

Здравствуйте.
Делаю в таймере проверку, если курсор в углу, показать форму(form1.show; )

Во втором таймере код:
Код:
if form1.Active=False then
begin
form1.Hide;
end;
Нужно, кода курсор в углу, показать форму, и дать ей активность, фокус, или как еще это назвать... (например активность окна теряется когда щелкаю по рабочему столу или куда нибудь, кроме самой формы)

Так вот, как только запускаю программу, навожу курсор в угол, она появляется там, с активностью, потом щелкаю на раб. стол, она исчезает, опять подвожу мышь в угол, она появляется но уже без активности, то есть если опять щелкнуть по раб.столу - она не исчезнет.

Как мне сделать так, что бы при form1.show , программа приобретала активность ???
Пробовал form1.active:=true, но при компелировании пишет что это только для чтения.

Если что, Win7, Delphi 7.
Rec0il вне форума Ответить с цитированием
Старый 30.10.2014, 11:03   #2
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Код:
form1.show;
form1.SetFocus;
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 30.10.2014, 11:33   #3
Rec0il
Пользователь
 
Регистрация: 16.03.2013
Сообщений: 69
По умолчанию

Цитата:
Сообщение от grominfo Посмотреть сообщение
Код:
form1.show;
form1.SetFocus;
Пробовал - не работает. Программа появляется, но фокус на ней нет.
ВОт скрин, форма появляется первый раз с фокусом, потом нажимаю на раб. стол, исчезает, навожу курсор в угол, появляется форма, но уже без фокуса. Вторая картинка на скрине.


Если что, вот код:
Код:
procedure TForm1.tmr1Timer(Sender: TObject);
begin
if (Mouse.CursorPos.X=0) and (Mouse.CursorPos.Y=0) then
begin
  form1.Show;
  form1.SetFocus;
end;
end;



procedure TForm1.tmr2Timer(Sender: TObject);
begin
if Form1.Active=false then
begin
  form1.Hide;
end;
end;

Последний раз редактировалось Rec0il; 30.10.2014 в 11:45.
Rec0il вне форума Ответить с цитированием
Старый 30.10.2014, 11:59   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

А если Form1.Activate?
FaTaL вне форума Ответить с цитированием
Старый 30.10.2014, 12:23   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Код:
Application.BringToFront();
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 30.10.2014, 13:00   #6
Rec0il
Пользователь
 
Регистрация: 16.03.2013
Сообщений: 69
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Код:
Application.BringToFront();
Ребята, что я делаю не так ????
Код:
procedure TForm1.tmr1Timer(Sender: TObject);
begin
if (Mouse.CursorPos.X=0) and (Mouse.CursorPos.Y=0) then
begin
  form1.Show;
  form1.SetFocus;  // 1
  Form1.Activate;  //2
  Application.BringToFront;  //3
  Form1.FormStyle:=fsStayOnTop; //4
end;
end;



procedure TForm1.tmr2Timer(Sender: TObject);
begin
if Form1.Active=false then
begin
  form1.FormStyle:=fsNormal;
  form1.Hide;
end;
end;
4 варианта - не один не работает , что не так ёмаё! ((
Rec0il вне форума Ответить с цитированием
Старый 30.10.2014, 13:53   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

условие
Код:
(Mouse.CursorPos.X=0) and (Mouse.CursorPos.Y=0)
выполняется?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 30.10.2014, 14:20   #8
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Попробуй уничтожать форму, а потом опять создавать. То есть не show-hide, а create-free.
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 30.10.2014, 14:27   #9
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от grominfo Посмотреть сообщение
Попробуй уничтожать форму, а потом опять создавать. То есть не show-hide, а create-free.
Если уничтожить главную форму, то приложение закроется.
FaTaL вне форума Ответить с цитированием
Старый 30.10.2014, 14:35   #10
Rec0il
Пользователь
 
Регистрация: 16.03.2013
Сообщений: 69
По умолчанию

Цитата:
Сообщение от grominfo Посмотреть сообщение
Попробуй уничтожать форму, а потом опять создавать. То есть не show-hide, а create-free.
А без create и free нельзя ?

Цитата:
Сообщение от min@y™ Посмотреть сообщение
условие
Код:
(Mouse.CursorPos.X=0) and (Mouse.CursorPos.Y=0)
выполняется?
Да, как только подвожу курсор в угол - форма появляется, но без фокуса на ней(она на переднем плане, просто фокуса не ней нет, пока не ткнешь по форме мышкой)
Вот мне и надо, при команде form1.show дать ей этот фокус. Только почему ничего не выходит ? Все способы с гугла перепробовал
Rec0il вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать кнопку BitBtn, на одной дочерней форме, не активной при закрытии другой дочерней формы? yds-09 Общие вопросы Delphi 18 30.09.2013 20:42
Показать Form2 по верх Form1 и сделать активной Shouldercannon Общие вопросы Delphi 15 02.07.2011 21:13
запускается VBA и показывает желтым ошибку User form1 Show Romuald Microsoft Office Excel 9 24.01.2009 23:45
Form1.Hide и Form1.Show... Roof Общие вопросы Delphi 9 13.10.2007 13:33
как сделать так чтобы при открытии второй формы олько она была активной doncova1 Общие вопросы Delphi 2 03.02.2007 19:34