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

Вниз

Модальные формы   Найти похожие ветки 

 
0990   (2010-01-14 17:35) [0]

в приложении в определенный момент времени автоматом вызывается модальная форма. Проблема в том, что в 1 из 1000 случаев она непонятно как оказывается позади главной, и я не могу получить к ней доступ т.к. главная закрывает ее полностью. В чем может быть дело.


 
Ega23 ©   (2010-01-14 17:43) [1]

Alr + Tab


 
clickmaker ©   (2010-01-14 17:47) [2]

> В чем может быть дело

глюк VCL


 
0990   (2010-01-14 17:50) [3]


> глюк VCL


как его исправить не подскажите?


 
clickmaker ©   (2010-01-14 17:53) [4]

правкой генофонда и пересборкой вцл, разве что
я лично не разбирался, в чем там косяк. может, кто-то из местных знает


 
sniknik ©   (2010-01-14 17:56) [5]

бывает если не указываешь овнера у MessageBox, с другим не сталкивался.


 
clickmaker ©   (2010-01-14 18:08) [6]

> бывает если не указываешь овнера у MessageBox

это не то. Так и в приложении на АПИ можно бокс спрятать. Он даже отдельной кнопкой на таскбаре может быть


 
Ганя   (2010-01-14 20:05) [7]

С MessageBox забавная ситуация иногда бывает при вызове дефолтного обработчика исключения.
Выглядит это так, что при вызове Application.MessageBox внутри него неправильно определяется параметр - дескриптор окна.
Функция Windows.MessageBox возвращает соответствующий код ошибки, но его никто не анализирует, и сообщение просто не появляется на экране.
Теперь что происходит у пользователя - он жмет кнопку команды, при выполнении происходит какое-либо исключение, в том числе оно может быть вполне прикладным, но сообщения об ошибке он не видит, и предполагает, что операция завершилась успешно, а потом возникает взаимное непонимание.
Почему в параметры попадает не тот дескрипторЮ, и при каких условиях так бывает - понять не удалось.


 
Darvin   (2010-01-15 10:00) [8]

Вообще-то, в вопросе шла речь не о MessageBox-е, а о модальной форме ;-)


 
sniknik ©   (2010-01-15 10:57) [9]

с модальной формой я такого не видел... но если это есть то может быть вызвано теми же причинами, например созданием формы с nil в параметрах... не знаю в общем как но аналогия, имхо, очевидна.
и еще, имхо, очевидна необходимость в дополнительных исходных данных про создание/использовании формы. или нет?


 
Darvin   (2010-01-15 12:01) [10]

У меня такой косяк тоже наблюдается. Создаю с параметром Application или Application.CreateForm()


 
Ega23 ©   (2010-01-15 12:08) [11]

Alt + Tab


 
Darvin   (2010-01-15 12:22) [12]


> Alt + Tab

И это прописать в инструкции для пользователя?


 
Ega23 ©   (2010-01-15 12:45) [13]


> И это прописать в инструкции для пользователя?


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


 
0990   (2010-01-15 12:48) [14]

Проблему решил написанием промежуточного класса:


const
 MSG_SET_TOP = WM_USER + 1;

type

 { TTopForm }

 TTopForm = class(THelpForm)
 private
   procedure MsgSetTop(var Message: TMessage); message MSG_SET_TOP;
 protected
   procedure DoShow; override;
 end;

{ TTopForm }

procedure TTopForm.DoShow;
begin
 inherited;
 if fsModal in FormState then
   try
     PostMessage(Handle, MSG_SET_TOP, 0, 0);
   except
   end;
end;

procedure TTopForm.MsgSetTop(var Message: TMessage);
begin
 try
   SetWindowPos(Handle, HWND_TOP, 0, 0, 0, 0,
     SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOOWNERZORDER or
     SWP_NOREPOSITION or SWP_NOSIZE);
 except
 end;
end;


 
ANB   (2010-01-15 13:06) [15]


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

Форма при этом создается или только показывается ранее созданная ?


 
0990   (2010-01-15 13:20) [16]


> Форма при этом создается или только показывается ранее созданная
> ?


Создается. Application.CreateForm(...)


 
Игорь Шевченко ©   (2010-01-15 20:58) [17]

http://transl-gunsmoker.blogspot.com/2009/01/blog-post_6896.html



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

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

Наверх





Память: 0.48 MB
Время: 0.018 c
2-1263994251
webpauk
2010-01-20 16:30
2010.03.21
Обращение к свойствам TForm по его Handle


15-1261105051
Petr V. Abramov
2009-12-18 05:57
2010.03.21
кстати, "госуслуги"-онлайн заработали-таки


2-1263482392
Sunktor
2010-01-14 18:19
2010.03.21
Как в CodeGear Delphi 2009 запретить показ вкладки Welcome Page


2-1263991727
nordlink19
2010-01-20 15:48
2010.03.21
Рисование окружности в free pascal


2-1263392044
Виталий Панасенко
2010-01-13 17:14
2010.03.21
АДО и master-detail





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