Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Форма поверх остальных
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - FAQ
ProgeRock
Как главную форму сделать поверх остальных?
sax_ol
FormStyle := fsStayOnTop - не помогает?
ProgeRock
Уже пробовал (Все формы проэкта сохраняют свою последовательность относотельно друг друга, но становятся перед другими окнами), а мне нужно чеб главная форма встала перед побочными
sax_ol
Что такое "побочная" форма?
ProgeRock
Проста хотел выделить, что не главная
sax_ol
Вы что то не договариваете, потому как у всех fsStayOnTop работает как и прописано.
ProgeRock
Ну не работает и все тут!
sax_ol
А, ну так у вас ошибка в 17 строке.

Вот я приатачил проектик - там все работает.
ProgeRock
Как сделали та?
Одно изменение FormStyle ни к чему не приводит!
sax_ol
Все есть в проекте, никакого мошейничества!
ProgeRock
Все аналогично, только не работает.
Нажмите для просмотра прикрепленного файла
ProgeRock
А как быть с видемостью на панели задач?
sax_ol
А из ссылки - вот это:
Цитата
For each fsStayOnTop-window and each modal Window startet from it (also
dialogs etc.!), on can set
Application.MainFormOnTaskbar := false
before creating the window (or modal window, e.g. dialog.execute).
After creation (resp. execute) set Application.MainFormOnTaskbar to true
again.
не помогло?

PS: на будущее - надо указывать версию Delphi.
ProgeRock
Сработало, спасиба.
ProgeRock
Еще один касячок: нада чеб вторая форма находилась сразу после первой. Если ей поставить fsStayOnTop, то
когда становится активной, встает вперед.
sax_ol
ProgeRock
Блин, вы говорите на тарабарском, а тут нет людей со знанием этого.
Т.е. поробуйте объяснять так как будто лохам, а не себе, ибо что такое вторая и первая и как она встает, и что значит после - нифига непонятно!
ProgeRock
В проэкте 2 формы.
Необходимо чеб первая находилась спереди второй и чеб между формами не могло встать любое окно Windows

Визуально еасяк выглядит так Нажмите для просмотра прикрепленного файла
sax_ol
Нужен код.
sax_ol
У вас и прошлый раз был этот самый "всетут" ...
Может уже пора справку почитать?
ProgeRock
Дак еслиб еще знать на какую тему читать.

Какую справку имеете ввиду? В стандартной Rad Studio Documentation минимум инфы.
sax_ol
Что то по моему вы мутите, у вас форма тоже fsStayOnTop?
ProgeRock
Цитата
Если ей поставить fsStayOnTop, то когда становится активной, встает вперед.

Это про вторую, а первая fsStayOnTop.
Как сделать чеб вторая форма никогда не стала активной?
sax_ol
У вас все работает правильно! Запутали и меня и себя. Только пока непонятно, что вы добиваетесь.
Цитата(ProgeRock @ 27:03:2008 - 16:27) *
Как сделать чеб вторая форма никогда не стала активной?

Не активировать ее, ну что тут непонятного .. а вот непонятно - зачем такое окно?
ProgeRock
Цитата
Не активировать ее

Дак она активируется при нажатиии на форме.

Я нарна криво проблему объясняю!
Вот к примеру диспетчер задач, он тоже перед всеми и может влазить между окнами проекта (когда его окно активно)
(независимо стоит ли fsStayOnTop),а этого не хочется совсем и как нибуть нада устранить это явление.

Дайте проэктик с двумя формами, и у обоих fsStayOnTop (Может че та опять с Delphi 2007)
sax_ol
И в чем проблема? Я честно не понимаю, что вы хотите, ну не загружайте диспетчер задач, и нет явления.
Это нормальное повидение, так работает винда, если юзер загрузи диспетчер задач, ну так значит ему это надо ...
ProgeRock
Ладно, запарился, но все равно спасиба.
zubr
ProgeRock
Твою проблему можно решить, только это не совсем просто. Стоит ли проблема затрат? А решение: в глобальном хуке на событие WM_ACTIVATE выполнять код:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE+SWP_NOSIZE);

где Handle - это хендл твоей формы
ProgeRock
То, что нада! Спасиба.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.