Вниз
Скачать: CL | DM;

fsStayOnTop   Найти похожие ветки 

← →
ElectriC ©   (2007-02-11 02:56) [0]

Есть две формы(главная и модальная)! Я устанавливаю FormStyle := fsStayOnTop у обоих форм (в run-time)! Затем при запуске программы вызываю модальную форму (ShowModal)! Формы находяться поверх остальных форм др. программ! Закрываю модальную форму! Затем опять открываю её же! После этого (хоть и FormStyle := fsStayOnTop) они не находяться поверх остальных окон др. программ! Что делать? Подскажите, плиз! Уже два дня мучаюсь! P.S. Когда закрываешь модальную форму главная находиться поверх окон! А вот модальная...портит всю картину!!!


← →
Leonid Troyanovsky ©   (2007-02-11 09:31) [1]


> ElectriC ©   (11.02.07 02:56)  

> поверх окон! А вот модальная...портит всю картину!!!


http://groups.google.com/group/fido7.ru.delphi.chainik/msg/6ac825c2a66dd3d0

--
Regards, LVT.


← →
ElectriC ©   (2007-02-11 21:42) [2]

thansk, что объяснили чайнику!


← →
ElectriC ©   (2007-02-11 21:57) [3]

P.S. А можно ли сделать как у диспетчера задач Windows(если он находить-ся поверх окон, вызываю форму "Выбрать столбцы") чтобы и главная никуда не сворачивалась, оставалась позади модальной формы!


← →
Leonid Troyanovsky ©   (2007-02-12 13:05) [4]


> ElectriC ©   (11.02.07 21:57) [3]

> P.S. А можно ли сделать как у диспетчера задач Windows(если
> он находить-ся поверх окон, вызываю форму "Выбрать столбцы")
> чтобы и главная никуда не сворачивалась, оставалась позади
> модальной формы!


Если речь идет только о двух формах, то можно не трогать formstyle,
а поступить примерно так:

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TForm2.Create(nil) do
    try
      ShowModal;
    finally
      Free;
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 SetWindowPos(Application.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
end;

И для TForm2

procedure TForm2.FormShow(Sender: TObject);
begin
      SetWindowPos(Application.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
end;

Для более же сложных случаев нужно тщательное тестирование.

--
Regards, LVT.


← →
ElectriC ©   (2007-02-12 14:17) [5]

Но при этом, если я, допустим, открываю OpenDialog(или SaveDialog), OpenDialog (или SaveDialog) находится позади всех форм моей программы?
Как предотвратить такое безобразие(т.е. поставить OpenDialog(или SaveDialog) поверх всех форм моей программы, когда у них FormStyle = fsStayOnTop)? Заранее, большое спасибо!


← →
ElectriC ©   (2007-02-12 21:47) [6]

[*_*]


← →
Leonid Troyanovsky ©   (2007-02-13 11:11) [7]


> ElectriC ©   (12.02.07 14:17) [5]

> Но при этом, если я, допустим, открываю OpenDialog(или SaveDialog),
>  OpenDialog (или SaveDialog) находится позади всех форм
> моей программы?

Ну, вот.. Начиналось с "выбрать столбцы", а закончилось OpenDialog.

Кста, я ж говорил про то, что у вторичных форм fsStayOnTop
сбрасывается при минимизации приложения.

А сделать непотопляемым OpenDialog можно если, кроме

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowPos(Application.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
end;

добавить диалогу тот же самый вызов в его OnShow.

Но, вообще-то, такими вещами, как HWND_TOPMOST злоупотреблять
ни в коем случае не стоит. Т.е., приложение может позволить себе
только одну малюсенькую формочку, IMHO.

--
Regards, LVT.


← →
ElectriC ©   (2007-02-13 17:26) [8]

BIG Thanks!!! Терь я, наконец-то, выпущу свою прогу! YEEESSS!


← →
Leonid Troyanovsky ©   (2007-02-13 19:34) [9]


> ElectriC ©   (13.02.07 17:26) [8]

> BIG Thanks!!! Терь я, наконец-то, выпущу свою прогу! YEEESSS!


Надеюсь, что ты меня не подведешь.

--
Regards, LVT.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
15-1173935832
vajo
2007-03-15 08:17
2007.04.08
Microsoft рекомендует красть Windows


15-1173772062
In/Out
2007-03-13 10:47
2007.04.08
Регрессионный анализ???


2-1174142625
Roman_S
2007-03-17 17:43
2007.04.08
Как создать/удалить ярлык на рабочем столе?


3-1169031100
kyn66
2007-01-17 13:51
2007.04.08
Не открываются базы Visual FoxPro


2-1174416546
Аноним
2007-03-20 21:49
2007.04.08
Поиск в TRichEdit с помощью TFindDialog СНИЗУ ВВЕРХ




   Наверх