Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Две формы: FormStyle=fsStayOnTop.. Form2 всегда выше Form1?   Найти похожие ветки 

 
Vyacheslav   (2012-03-05 15:34) [0]

Здравствуйте.
В проекте 2 формы: Form1.FormStyle = fsStayOnTop; Form2.FormStyle = fsStayOnTop; Form1 - main form проекта.
Хочу добиться того, чтоб обе формы, как и подразумевается были поверх всех окон, но при этом Form2 всегда выше Form1.
Я думаю, что все знают, что тривиальная смена FormStyle на fsStayOnTop не даёт ожидаемого результата, а именно Form2, начинает теряться при клике на не активное окно другого приложения или смене активного Alt+Tab.


 
AV ©   (2012-03-05 15:57) [1]

не получилось воспроизвести..
но может, что вроде такого нужно (чтобы при активации приложения была нужная форма показана)?

type
 TNotifyEvent = procedure(Sender: TObject) of object;
var
 M: TMethod;

 procedure aa(sender: TObject);
 begin
   Form2.Show;
 end;
{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.CreateForm(TForm2, Form2);
 M.Code := addr(aa);
 M.Data := nil;
 Application.OnActivate := TNotifyEvent(M);
 Application.Run;
end.


 
Vyacheslav   (2012-03-05 19:05) [2]

Не совсем понял идею..
Честно сказать не знаю даже, какой именно API отвечает за последовательность отображения форм..


 
Vyacheslav   (2012-03-05 19:19) [3]

Т.е. нужно найти тот момент, когда надо отдавать Form2.SetFocus;


 
Vyacheslav   (2012-03-05 19:49) [4]

Всё что получилось, это поставить на форму Form2 таймер:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
 if (Form2.Visible and Form2.Enabled) then Form2.SetFocus;
end;

Но это уж совсем лапти!

В методе AV поменял Form2.Show; на Form2.SetFocus;, Application.OnActivate := TNotifyEvent(M); на Application.OnDeActivate := TNotifyEvent(M); - получилось удерживать Form2 при потере фокуса всей Application, но не удалось вернуть фокус Form2 при возврате в фокус Form1..



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.062 c
15-1354088508
asail
2012-11-28 11:41
2013.03.22
Win7 32bit и 8гиг оперативки...


2-1331468421
Димка На
2012-03-11 16:20
2013.03.22
Создать несколько экз. класса сразу.


15-1338888632
Екатерина
2012-06-05 13:30
2013.03.22
Moodle


2-1335889883
PacMan
2012-05-01 20:31
2013.03.22
TThread копирование файла в 2-х потоках


6-1259931784
Kanaris
2009-12-04 16:03
2013.03.22
Как реализовать "ретранслятор" запросов через сокеты?