![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глюк с 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);