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

Вниз

Модальное окно уходит на задний план   Найти похожие ветки 

 
DelphiN! ©   (2006-03-30 13:49) [0]

Есть основная форма, которое вызывает модальное окно, при каких-то действиях бывает что модальное окно каким-то образом уходит на задний план, а главная форма выходит на передний, при этом создается впечатление что главная форма подвисла, пока не альтабишься на модальное окно. Сам не видел как такое происходит, но было много жалоб, как с этим бороться?


 
McSimm ©   (2006-03-30 13:50) [1]

кто parent модального окна ?


 
DelphiN! ©   (2006-03-30 13:55) [2]

Создаю динамически, свойство parent не заполняю ...
Интересно а поумолчание parent то кто? Тот кто создал?
Точно, наверное в этом и проблемма ...


 
McSimm ©   (2006-03-30 13:57) [3]

свойство parent не надо заполнять.
--
я кажется напутал что-то. помню давно борол такое, но подробности смешались.


 
McSimm ©   (2006-03-30 13:58) [4]

А на главной форме совершенно случайно нет (db)grid какого-нибудь ?


 
DelphiN! ©   (2006-03-30 14:01) [5]

Не, гридов на главной форме нет, TImageы, panelы, buttonы(Бизнесскиновые), TWebBrowserы только


 
Игорь Шевченко ©   (2006-03-30 14:03) [6]


> Есть основная форма, которое вызывает модальное окно


Код в студию


 
McSimm ©   (2006-03-30 14:05) [7]

помню еще пытался бороть исчезновение модального окна, когда над каким-то из контролов со скроллбаром крутилось колесо мышки.


 
McSimm ©   (2006-03-30 14:06) [8]

вот только не помню каким образом оно сообщения об этом получало


 
КиТаЯц ©   (2006-03-30 14:10) [9]

Было. Писал здесь уже не раз. Уходит при выполнении длинного цикла в модальной форме + щелчок мышью по главной форме которая торчит из-за модальной. парент - application
Поборол забив во все циклы Application.ProcessMessage


 
DelphiN! ©   (2006-03-30 14:11) [10]


     if not ShowInform  then
     begin
       if frmInform = nil then
         frmInform := TfrmInform.Create(nil);

       frmInform.lab.Caption := str;
       frmInform.lab.Left := 10;
       frmInform.lab.Top := 10;

       frmInform.Width := frmInform.lab.Width+20;
       frmInform.Height := frmInform.lab.Height+100;
       frmInform.pnl.Left := 10;
       frmInform.pnl.Width := frmInform.Width-20;
       frmInform.pnl.Top := frmInform.Height-50;
       frmInform.btnOk.Left := (frmInform.Width div 2)-(frmInform.btnOk.Width div 2);
       frmInform.btnOk.Top := frmInform.Height-30;
       ShowInform := true;
       frmInform.ShowModal;
       ShowInform := false;
       frmInform.Free;
       frmInform := nil;
     end;
   end;


frmInform объявлена глобально.


 
DelphiN! ©   (2006-03-30 14:14) [11]

[9] КиТаЯц ©   (30.03.06 14:10)
У меня в модальном окнее вообще ничего не выполняется, выполняется только в других потоках ...

[7] McSimm ©   (30.03.06 14:05)
Кроме как TWebBrowser нет таких компонентов на форме, да и то только на главной, на модальном окне скиновые кнопки, панели да лабелы ..


 
BiN ©   (2006-03-30 14:43) [12]

Ось  - XP и выше? угадал?


 
Игорь Шевченко ©   (2006-03-30 14:46) [13]


> frmInform := TfrmInform.Create(nil);
>
>        


почему не frmInform := TfrmInform.Create(Application); ?


 
DelphiN! ©   (2006-03-30 14:48) [14]

[12] BiN ©   (30.03.06 14:43)
Угадал, а что?

[13] Игорь Шевченко ©   (30.03.06 14:46)
А зачем?


 
Игорь Шевченко ©   (2006-03-30 14:54) [15]

DelphiN! ©   (30.03.06 14:48) [14]

Parent автоматически присваивается.

RTFS: TWinControl.CreateWnd


 
Игорь Шевченко ©   (2006-03-30 14:55) [16]

Виноват, это только для Child"ов.


 
BiN ©   (2006-03-30 14:59) [17]


> DelphiN! ©   (30.03.06 14:48) [14]
>
> [12] BiN ©   (30.03.06 14:43)
> Угадал, а что?

На 2003 server под Citrix-клиентом наблюдалось аналогичное поведение модальных форм. Отладка на данной системе была невозможной по ряду организационных причин. Лечилось применением SetForegroundWindow.


 
McSimm ©   (2006-03-30 15:08) [18]

все-таки попробуйте ради эксперимента покрутить колесо мыши над TWebBrowser - как-никак ActiveX и может жить своей собственной жизнью.
(у меня нет возможности самому проверить)


 
DelphiN! ©   (2006-03-30 15:09) [19]

[18] McSimm ©   (30.03.06 15:08)

:)) Не, не уходит


 
DelphiN! ©   (2006-03-30 15:19) [20]

[17] BiN ©   (30.03.06 14:59)

Чтож, спасибо, буду извращяться ...


 
КаПиБаРа ©   (2006-03-30 15:33) [21]

w2 sp4 D6

Модальное окно пропадает при прокручивании колеса мыши над form1. Или form1 вылазит вперед модального окна.
При прокручивании колеса над самим модальным окном все ок.

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage("ddd");
end;


 
REA   (2006-03-30 15:47) [22]

Тоже такое бывает. Причем в самой IDE тоже иногда такое происходит.
Если нажать Alt-Tab, Alt-Tab - появляется нужное модальное окно.


 
DelphiN! ©   (2006-03-30 15:47) [23]

[21] КаПиБаРа ©   (30.03.06 15:33)

А у меня все ОК.
Win2k3 SP1
D6 Update Pack 2

WinXP SP2 тоже все ОК


 
КаПиБаРа ©   (2006-03-30 15:52) [24]

Вырубил прогамку Genius NetScroll Optical Mouse (расширение функционала мышки) и стало все ок.
Теперь понятно откуда ноги растут.


 
КаПиБаРа ©   (2006-03-30 15:55) [25]

REA   (30.03.06 15:47) [22]
Проверил в самом IDE исчезают модальные окна при включенной Genius NetScroll Optical Mouse. При отключенной все ок.


 
DelphiN! ©   (2006-03-30 15:59) [26]

А у моих пользователей, нет никаких драйверов для мыши дополнительных.
WinXP sp2 стоит


 
tsa   (2006-03-30 16:04) [27]

Пропадают, даже у Билла - когда драйвер ставишь, а win спрашивает - всеравно продолжить или не стоит. Вот этот вопрос иногда пропадает и думаешь зависло всё и драйвер битый.


 
REA   (2006-03-30 16:04) [28]

А у меня нет этой самой NetScroll и с wheel вообще похоже не связано. Надо будет выявить последовательность действий.


 
Prohodil Mimo ©   (2006-03-30 16:34) [29]

В некоторых случаях делаю модальному окну StayOnTop и сразу Normal - всплывают.


 
WondeRu ©   (2006-03-30 16:54) [30]

DelphiN! ©   (30.03.06 13:49)
форма создается в длл и в главной программе?


 
WondeRu ©   (2006-03-30 16:55) [31]

WondeRu ©   (30.03.06 16:54) [30]
форма создается в длл или в главной программе?


 
antonn ©   (2006-03-30 18:40) [32]

у меня такая же бадяга. На форме стринггрид перекрашенный на TTabbedNotebook. Само явление случайного характера, по крайней мере я так и не понял, как его получить. Но если проявилось, то лечилось только перезапуском программы. Никаких расчетов форма не вела, модальное окно создавалось динамически.


 
_uw_   (2006-03-30 19:22) [33]

Я сейчас пишу в VS 2005 (C#), но, думаю, - один фиг. Такое было, когда при открытой форме со свойством TopMost открывал диалог. Сделал диалог тоже TopMost - и хорошо.


 
DelphiN! ©   (2006-03-31 07:23) [34]

А мне StayOnTop даже не помогает



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

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

Наверх




Память: 0.54 MB
Время: 0.042 c
1-1142802030
API
2006-03-20 00:00
2006.04.23
Отключение функции Ghost Window в Windows XP


15-1143712340
Kolan
2006-03-30 13:52
2006.04.23
Добавление свойств в интерфейс при создании COM объекта.


1-1142835437
Гость101
2006-03-20 09:17
2006.04.23
Изменить шрифт


4-1138956993
hgd
2006-02-03 11:56
2006.04.23
Подскажите о методе нажатия кнопку в другом приложении


3-1141034307
neat
2006-02-27 12:58
2006.04.23
Query