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

Вниз

MessageBox без запуска Application.Run()   Найти похожие ветки 

 
kapral   (2006-06-07 11:02) [0]

после       Application->Initialize();
делаю
MVCT=new TMVCT;
если базы данных нет и т.д. выхожу, не вызывая
Application->Run();
но хотелось бы выдавть сообщение пользователю, чего не хватает
вот тут и меня ожидала засада - вызываю ::MessageBox(NULL, и генерируется сообщение об ошибку, которую оловить невозможно
что делать?


 
Сергей М. ©   (2006-06-07 11:05) [1]

см. Windows.MessageBox()


 
tesseract ©   (2006-06-07 11:07) [2]

Например так :
MessageBox(0, "", "", MB_ICONWARNING or MB_OK);


 
kapral   (2006-06-07 12:55) [3]

так я же и так и написал
::MessageBox(NULL, и т.д.
тут засада в том, что Application->Run();
запускает обработчик сообщений и ::MessageBox(NULL, и т.д. хотя и не принадлежит окну, но сообщение об ошибке вылетает
а если не использовать ::MessageBox(NULL, все хорошо, только вот беда, что пользователь не понимает, почему нет ничего
у меня работа между несколькими процессами, если процесс (программа не запущена, то нельзя ничего делать другому процессу), вот только как сообщить пользователю, что у него процесс не запущен
самое простое, через ::MessageBox(NULL, -но увы


 
tesseract ©   (2006-06-07 13:11) [4]

странно у меня всегда работало.


 
Сергей М. ©   (2006-06-07 13:11) [5]


> так я же и так и написал
> ::MessageBox


Это ты вызвал метод MessageBox объекта Application, а не одноименную WinAPI-ф-цию


 
kapral   (2006-06-07 14:19) [6]

я же ::MessageBox написал
а не Applicaton->MessageBox();
это вообще не будет работать Application->Run();
не запущена


 
Сергей М. ©   (2006-06-07 15:00) [7]

Приведи полный текст файла проекта..


 
kapral   (2006-06-07 16:15) [8]

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try{
try{
int f=1;
      Application->Initialize();
MVCT=new TMVCT;
 if(!Start())
{  
f=2;
 goto end_app;
}
    Application->Run();
}
  catch (Exception &exception)
  {
      Application->ShowException(&exception);
      f=0;
  }

  catch (...)
  {
  f=0;
  }
}
__finally
 {
 End();
 Sleep(1000);
end_app :  delete MVCT;
if(f==2)

  ::MessageBox(NULL,"", "",MB_OK) ;
 return 0;
}


 
tesseract ©   (2006-06-07 16:21) [9]

А до WinMain MessageBox вызвать нельзя?


 
Сергей М. ©   (2006-06-07 16:50) [10]


> которую оловить невозможно


И где ты ее "ловишь" ? Покажи ..


 
kapral   (2006-06-07 18:06) [11]

а catch (...) разве не ловит?
если нет, то подскажите как надо?


 
Сергей М. ©   (2006-06-08 08:15) [12]


> catch (...) разве не ловит?


У тебя MessageBox находится ВНЕ блока try..catch !

Ко всему прочему goto-переход в тело finally-блока недопустим.



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

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

Наверх




Память: 0.47 MB
Время: 0.01 c
1-1148073077
yahaha
2006-05-20 01:11
2006.06.25
Работа с HTML документом


2-1149758283
Tempora
2006-06-08 13:18
2006.06.25
Вопрос по формам


2-1149580120
JTAG
2006-06-06 11:48
2006.06.25
Господа подскажите плз, где можно иконки для программы поискать


2-1149584453
ttt_111
2006-06-06 13:00
2006.06.25
Написание HELP


1-1148115679
Freeon
2006-05-20 13:01
2006.06.25
Обратная матрица 4х4, Det=1 (определитель)





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