Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Глюк с MsgBox,ShowMsg [Delphi, D7, Windows, WIN2000]


<> ©   (2009-03-03 14:12:00) 

Глюк с 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, то он появляется всегда ЗА этим окном.


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

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

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

То всё ОК.


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

MB_SYSTEMMODAL


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

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

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


Jon   (2009-03-03 14:53:00) [4]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо