Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Основная";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.034 c
3-1169128300
Layner
2007-01-18 16:51
2007.04.08
Сравнение 2х БД => получить разницу в SQL скрипт


2-1174239288
MIV
2007-03-18 20:34
2007.04.08
DBGrid


2-1173867915
misha_gr
2007-03-14 13:25
2007.04.08
Программная активация дочерней формы


15-1173640857
Cyrax
2007-03-11 22:20
2007.04.08
Активные форумы по CASE-системам...


2-1174254174
uranius
2007-03-19 00:42
2007.04.08
как грамотно отправить xml запрос по http ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский