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

Вниз

Глюк с MsgBox,ShowMsg   Найти похожие ветки 

 
<>   (2009-03-03 14:12) [0]

Глюк с MsgBox,ShowMsg

Вот код:


var T: Integer;

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
begin
 Timer1.Interval:=1000;
 T := 0;
 Form.Visible:=false;
end;

procedure TForm1.Timer1Timer(Sender: PObj);
begin
 T := T+1;
 IF T mod 2 =0 THEN
 begin
  Timer1.Enabled := false;
  if (MsgBox("TEST",1) =1 ) then Form.Close;
  Timer1.Enabled := true;
 end;
 beep(1000,100);
end;


Если програму запускать из среды Дельфи, то всё ок, а если запускать отдельно скомпилированный файл - то в случае если имеется какое-нибудь окно (окно любой программы) во фронте, то первый раз MsgBox появляется ЗА этим окном, а второй и следующие разы - появляется поверх остальных окон, т.е. как и должно быть. А если использовать ShowMsg, то он появляется всегда ЗА этим окном.


 
Jon ©   (2009-03-03 14:53) [1]

ShowMsg("TEST",MB_OK or MB_ICONINFORMATION or MB_APPLMODAL or MB_SETFOREGROUND);


 
<>   (2009-03-03 15:00) [2]

>ShowMsg("TEST",MB_OK or MB_ICONINFORMATION or MB_APPLMODAL or MB_SETFOREGROUND);

То же самое, появляется за окном которое на переднем плане.


 
Дмитрий К ©   (2009-03-03 15:36) [3]

MB_SYSTEMMODAL


 
<>   (2009-03-03 16:43) [4]

> MB_SYSTEMMODAL
Да, это работает.

Ещё если перед вызовом MsgBox послать сообщение:
SendMessage(GetDesktopWindow(), WM_SYSCOMMAND, SC_HOTKEY, form.Handle);

То всё ОК.



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
15-1302899395
Юрий
2011-04-16 00:29
2011.08.07
С днем рождения ! 16 апреля 2011 суббота


15-1303109431
Дмитрий Тимохов
2011-04-18 10:50
2011.08.07
Нежелательная обработка сообщений


15-1302722024
Palladin
2011-04-13 23:13
2011.08.07
Хранители


15-1302812996
Юрий
2011-04-15 00:29
2011.08.07
С днем рождения ! 15 апреля 2011 пятница


15-1302298974
Re
2011-04-09 01:42
2011.08.07
Delphi и Win7