| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Модальное окно |
| Автор: FireAlex 17.11.2005, 14:19 |
| такая проблема. существует приложение состоящее из основной форм и форм, которые может открывать пользователь. я отрываю все окна функцией form1.showmodal но если в винде станет активным другое приложение, а потом снова моё приложение, то form1 не показывается а показывается основная форма программы. лишь после щелчка мыши открывается форма form1. Как сделать, чтобы оно не исчезало? то есть если пользователь свернул приложение а потом снова развернул показывалась опять форма которую он открыл последней? |
| Автор: Snowy 17.11.2005, 14:36 |
| Я бы сказал, но у меня такие артифакты не наблюдаются... |
| Автор: Albinos_x 17.11.2005, 15:08 | ||||
аналогично....
делай главную невидимой: Visible:=false; - самы простой способ решения твоей проблемы... |
| Автор: FireAlex 17.11.2005, 15:19 |
| дело в том что на самом деле главная форма про которую я говору не является главной в проекте (опция MAinForm в свойствах проектра). главная форма - это форма которая появляется при старте программы и в которую пользователь вводит логин и пароль и в зависимости от введенного логина определяется элементы которые отображаются в основной форме - то есть своего рода определяется доступ... после того как пользователь ввел логин и пароль основная форма становится невидимой и появляется "основная форма" уже программы... |
| Автор: FireAlex 17.11.2005, 15:47 |
| всё я понял почему - в главном окне у меня есть таймер который выводит время и дату в статус баре внизу формы. его убрал и всё стало нормально. а как, тогда сделать чтобы всё работало вместе с таймером? |
| Автор: Albinos_x 17.11.2005, 16:04 |
| можно в стиле формы поставить - поверх окон - FormStyle: = fsStayOnTop; |
| Автор: Snowy 17.11.2005, 16:07 |
| А ты стопори таймер перед вызовом формы, а по закрытию запускай снова. Хотя почему у тебя при модальной форме работает таймер непонятно... |
| Автор: Albinos_x 17.11.2005, 16:17 | ||
угу... |
| Автор: FireAlex 17.11.2005, 16:19 |
| 2 Snowy таймер работает без проблем.. сделал FormStyle: = fsStayOnTop -стало нормально.. спасибо за совет! |
| Автор: FireAlex 18.11.2005, 07:40 |
| тут обнаружилась ещё одна проблема. если форма имеет стиль StayOnTop тогда сообщения функцией MesageDlg не отображаются....- они оказываются скрытыми формой... может как то можно сделать чтобы сообщения всегда были поверх всех окон? |
| Автор: VVSF 18.11.2005, 08:13 | ||
есть такая штука application.normalizetopmosts/app.restoretopmosts. У меня в проекте подобная,но не аналогичная, проблема была с модальными формами. Дык я ввел глобально переменную типа ТФорм, которой я присваивал значение - активная в данный момент в приложении форма, а когда, соответственно, активизировал апп. показывалась моя модальна форма...ну, вроде понятно обьяснил свое решение. //Дельфисты!кто-нибудь имеет знания Фокса??Мне нужна помощь по теме в базыД-Фокс\клиппер....ОЧЕНЬ нужна! Прошу прощения за флейм. |
| Автор: FireAlex 18.11.2005, 09:12 |
| решил так: Application.MessageBox(PAnsiChar('месага'),'Балда',mb_Ok+mb_Applmodal+mb_IconInformation); если так выводить то обязательно сообщение будет поверх всех окон |