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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.013 c
1-1142429031
DelphiLexx
2006-03-15 16:23
2006.04.23
Запрет ввода символа для Memo


1-1142605441
RusGl
2006-03-17 17:24
2006.04.23
Обработка насильственного прерывания консольного приложения.


2-1144219450
Daimyo
2006-04-05 10:44
2006.04.23
динамическое создание Tstringgrid


15-1143992025
Marser
2006-04-02 19:33
2006.04.23
Банный лист


8-1132575902
wicked
2005-11-21 15:25
2006.04.23
кватернионы и преобразования...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский