Главная страница
    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.009 c
2-1149363972
VasRoG
2006-06-03 23:46
2006.06.25
Кнопка


15-1149024510
asdfgb
2006-05-31 01:28
2006.06.25
Комплексные автоматиpированные системы


2-1149531201
HoBBiT.cmp
2006-06-05 22:13
2006.06.25
Матрицы


2-1149199309
Tigraman
2006-06-02 02:01
2006.06.25
Работает ли пользователь за компьютером?


15-1149150033
RA
2006-06-01 12:20
2006.06.25
Перезд в столицу? (Киев)





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