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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2014, 18:45   #1
Endifier
Пользователь
 
Регистрация: 17.06.2014
Сообщений: 36
Вопрос fsStayOnTop Form2

Привет.
Возник такой вопрос, есть 2 формы, с первой, по нажатию клавиши, вызывается вторая, при этом, у второй, свойство FormStyle = fsStayOnTop.
Однако, при переключении в любое окно (стороннее) вторая форма перекрывается. В чем проблема?
p.s.
Показ вызываю так - Form2.Show;.
Endifier вне форума Ответить с цитированием
Старый 06.07.2014, 20:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Предположу: Наверное проблема в том что эта форма не является главной, поэтому окно другого приложения ее перекрывает. т.е. СтейОнТоп в данном случае (наверное) работает только в рамках форм твоего приложения.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.07.2014, 22:27   #3
Endifier
Пользователь
 
Регистрация: 17.06.2014
Сообщений: 36
По умолчанию

Stilet, вы правы. Стал копать в сторону изменения главной формы, наткнулся на такой код:
Код:
program Project1;
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Unit3 in 'Unit3.pas' {Form3};
 
{$R *.res}
 
procedure SetAsMainForm(aForm:TForm);
var
  P: Pointer;
begin
   P := @Application.Mainform;
   Pointer( P^ ) := aForm;
end;
 
begin
   Application.Initialize;
   Application.CreateForm(TForm1, Form1);
   Application.CreateForm(TForm2, Form2);
   Application.CreateForm(TForm3, Form3);
 
   if Paramstr( 1 ) = 'Param1' then
      SetAsMainForm( Form2 );
 
   if Paramstr( 1 ) = 'Param2' then
      SetAsMainForm( Form3 );
 
   Application.Run;
end.
Но не пойму, как это дело работает, и работает ли вообще?
Endifier вне форума Ответить с цитированием
Старый 06.07.2014, 22:48   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
FormStyle = fsStayOnTop
работает только в пределах приложения, чтобы форма была топом в системе надо перекрывать CreateParams и устанавливать расширенные стили окну
или выставить стиль после создания окна спец. апи функциями
eval вне форума Ответить с цитированием
Старый 07.07.2014, 00:29   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,884
По умолчанию

Цитата:
Сообщение от Endifier Посмотреть сообщение
Stilet, вы правы. Стал копать в сторону изменения главной формы, наткнулся на такой код:
Код:
program Project1;
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Unit3 in 'Unit3.pas' {Form3};
 
{$R *.res}
 
procedure SetAsMainForm(aForm:TForm);
var
  P: Pointer;
begin
   P := @Application.Mainform;
   Pointer( P^ ) := aForm;
end;
 
begin
   Application.Initialize;
   Application.CreateForm(TForm1, Form1);
   Application.CreateForm(TForm2, Form2);
   Application.CreateForm(TForm3, Form3);
 
   if Paramstr( 1 ) = 'Param1' then
      SetAsMainForm( Form2 );
 
   if Paramstr( 1 ) = 'Param2' then
      SetAsMainForm( Form3 );
 
   Application.Run;
end.
Но не пойму, как это дело работает, и работает ли вообще?
А к чему вообще такое извращение? Какое отношение оно имеет к вопросу о fsStayOnTop?
northener вне форума Ответить с цитированием
Старый 07.07.2014, 00:31   #6
Endifier
Пользователь
 
Регистрация: 17.06.2014
Сообщений: 36
По умолчанию

а к чему ваш флуд?
Endifier вне форума Ответить с цитированием
Старый 07.07.2014, 02:05   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,884
По умолчанию

Цитата:
Сообщение от Endifier Посмотреть сообщение
а к чему ваш флуд?
Пытаюсь понять ваш бред, дабы подсказать лекарство.
P.S. А то что сей код, который вы надыбали где-то на всемирной помойке есть ужасное извращение недопрограммистов эдак 15-ти летней давности вам невдомёк конечно.
northener вне форума Ответить с цитированием
Старый 07.07.2014, 04:54   #8
Endifier
Пользователь
 
Регистрация: 17.06.2014
Сообщений: 36
По умолчанию

Бред, несете вы, захламляя тему, не более того. Есть конкретный вопрос, конкретная цель, если вы не можете "осилить" сути, или сказать что либо по существу, ну.. ни к чему тогда лишние разговоры разводить. И да, мне все равно сколько лет этому коду, да и я без понятия на самом то деле, поэтому и спрашиваю что к чему. Но.. вы и этого понять не способны.
Endifier вне форума Ответить с цитированием
Старый 07.07.2014, 08:44   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Бред, несете вы, захламляя тему, не более того.
Во-первых: За провокацию я буду наказывать жестко. Хватит с нас чуши.
Во-вторых: Вопрос
Цитата:
к чему вообще такое извращение? Какое отношение оно имеет к вопросу о fsStayOnTop?
Актуален учитывая что главентво формы устанавливается при создании а не какими-то SetAsMainForm().
Поэтому спрошу и я - к чему вышеприведенный код, являющийся бесполезным?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.07.2014, 10:18   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
и работает ли вообще?
то что вам надо делает?

SetWindowLong и SetWindowPos вам помогут.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
fsStayOnTop и message... Витл Помощь студентам 6 01.04.2012 18:13
fsStayOnTop без фокуса Deight Общие вопросы Delphi 4 04.03.2011 19:36
Не открывается Form2 kta87 Помощь студентам 5 09.03.2010 20:50
загрузка Form2 Cpluser Общие вопросы .NET 2 25.01.2010 16:16
form1 и form2 SLIMMUS Общие вопросы Delphi 3 29.10.2008 01:15