Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.004 c
15-1303122801
DiamondShark
2011-04-18 14:33
2011.08.07
Мобильные браузеры (WM)


1-1261308074
Nik
2009-12-20 14:21
2011.08.07
создание плагинов


2-1304085586
ПростоВася
2011-04-29 17:59
2011.08.07
Как работать с WM_GETTEXT


2-1303966863
mefodiy
2011-04-28 09:01
2011.08.07
COM port фискального принтера


15-1303146671
Nic
2011-04-18 21:11
2011.08.07
Баннер на сайте. Как вести статистику?




   Наверх