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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2015, 16:28   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Почему при вызове по таймеру Form2.FormStyle:=fsStayOnTop; не работает?

С начало было так:
1) запускаю программу
2) запускаю в ней таймер в котором запускаю вторую форму
3) в FormCreate второй формы прописал FormStyle:=fsStayOnTop;

Все сработало нормально

Теперь пытаюсь сделать следующее:

1) Жму на саму программу delphi
2) и по таймеру каждую секунду делаю Form2.FormStyle:=fsStayOnTop;

Ошибок нету и второе окно появляется поверх всех окон только когда первая форма в фокусе.

ЧТо не так?
Illusiony вне форума Ответить с цитированием
Старый 12.12.2015, 16:33   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

fsStayOnTop - поверх своих окон, а не всех.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.12.2015, 16:50   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
fsStayOnTop - поверх своих окон, а не всех.
Но в первом варианте оно срабатывает поверх чужого окна.

Хотя так и так Вы правы. Спасибо. Буду искать дальше.

Последний раз редактировалось Illusiony; 12.12.2015 в 16:56.
Illusiony вне форума Ответить с цитированием
Старый 12.12.2015, 16:57   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Но в первом варианте оно срабатывает поверх чужого окна.
И чо?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.12.2015, 17:12   #5
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Код:
type
  TForm2 = class(TForm)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;
//
implementation
//
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do
  begin
    ExStyle := ExStyle or WS_EX_TOPMOST;
    WndParent := GetDesktopWindow;
  end;
end;
А потом:
Form2.FormStyle := fsStayOnTop;

Последний раз редактировалось Filka; 12.12.2015 в 17:50.
Filka вне форума Ответить с цитированием
Старый 12.12.2015, 17:27   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
CreateParams
Фу, как грубо!

Вложения
Тип файла: rar 286623 - stayontop.rar (353.3 Кб, 6 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.12.2015, 17:39   #7
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Цитата:
Фу, как грубо!
Что не так?
Filka вне форума Ответить с цитированием
Старый 12.12.2015, 17:43   #8
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Сделал так:
Код:
 
Var
 hform2:HWND;
hform2:= findwindow(nil, 'Form2'); 

SetWindowLong(hform2, GWL_HWNDPARENT, GetDesktopWindow);
Работает.
Illusiony вне форума Ответить с цитированием
Старый 12.12.2015, 17:47   #9
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Это у вас то не грубо?
вместо перекрытия то чего можно и надо, выделываетесь с АПИ, причем еще и через не пойми как.

А, про грубо это не автора ... тогда про грубо к нему не относится

Последний раз редактировалось come-on; 12.12.2015 в 17:52.
come-on вне форума Ответить с цитированием
Старый 12.12.2015, 17:49   #10
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
Это у вас то не грубо?
вместо перекрытия то чего можно и надо, выделываетесь с АПИ, причем еще и через не пойми как.
Это мне?
Я и так уже использую API в программе.
Illusiony вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здравствуйте ! в чем проблема,почему почему время исполнения операций не работает ? ion leahu Помощь студентам 6 23.11.2014 19:36
fsStayOnTop Form2 Endifier Общие вопросы Delphi 19 09.07.2014 02:26
Комментарии. Только при пин-коде. Почему работает только 1 пи код? Bushel PHP 1 23.10.2010 18:21
Почему выдает ошибку при вызове других форм? NickiBell Microsoft Office Access 1 18.09.2010 20:08
Ошибка при смене FormStyle во время выпонения программы Marsel737 Общие вопросы Delphi 4 07.01.2010 22:31