Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Перевести из Делфи |
Автор: Лена 28.1.2009, 19:35 | ||
Как сея конструкция из Делфи, будет выглядить в С++ Builder? if edFirst.Text = '' then //тут понятно raise EMyApp.Create( 'First Name is required' ); //а тут как raise заменить? Мне надо так: if(IWDBLookupComboBox2->ItemIndex == -1) { тут raise return; } Весь код, выглядит так:
|
Автор: Dem_max 28.1.2009, 19:48 | ||||
|
Автор: Alexeis 28.1.2009, 20:14 |
Если в терминах С++ то throw , если SEH то RaiseException |
Автор: Лена 30.1.2009, 16:39 |
На этой странице: http://research.pdmagic.com/iw/html/index.html?4_3_the_secrets_of_the_server_controller.cfm В разделе Сomponents->Building the Weblication описан пример как вызывать исключения в отдельном web окне. //Set the ExceptionDisplayMode to smNewWindow и т.д. Я пишу так: if(IWDBLookupComboBox2->ItemIndex == -1) throw("Привет дядя!"); В результате я получаю окно с другим содержанием (см.рис). Как все таки правльно перевести тот код с Делфи? Добавлено через 11 минут и 38 секунд Помогла справка Архангельского. ![]() Вот так надо было: if(IWDBLookupComboBox2->ItemIndex == -1) throw Exception("Привет дядя!"); ![]() |
Автор: mrbrooks 30.1.2009, 17:12 | ||||||
В этом случае по правилам исключительной ситуации в С++ надо так:
Добавлено через 1 минуту и 32 секунды
а это уже VCL-шная тема. Сторонники чистоты С++ тебя съедят ![]() |
Автор: Лена 1.2.2009, 12:55 | ||
Мне необходимо избавиться от ShowMessage, потому что это окно возникает на серверном компьютере и клиент просто висит. Поэтому так надо: throw Exception("Привет дядя!"); в результате окно появляется на клиенте в IntraWEB. ![]() |
Автор: mrbrooks 2.2.2009, 08:50 | ||
это я чисто для примера - как обрабатываются исключения. это не есть руководство к действию ![]() да будет так |
Автор: VOX 6.2.2009, 12:06 |
вот переведенный код, заработает? typeEMyApp == class (Exception); TObject) const procedure TformMain->IWButton1Click(Sender; SMessage == "Thank you for( your interest <b>%s %s</b>. You will be notified by %s at %s" ; string { if(! (cbIntraweb->Checked || cbASPNET->Checked || cbDelphi7->Checked) ) raise EMyApp->Create( "Please check at least one event" ); var SNotifyAt, SNotifyMethod; if(edFirst->Text == "" ) raise EMyApp->Create( "First Name is required" ); if(edLast->Text == "" ) raise EMyApp->Create( "Last Name is required" ); switch(rgrpNotify->ItemIndex) 0: if(edEmail->Text == "" ) raise EMyApp->Create( "Email not filled in" ); 1: if(edPhone->Text == "" ) raise EMyApp->Create( "Phone not filled in" ); 2: if(edAddress->Text == "" ) raise EMyApp->Create( "Address not filled in" ); } typeEMyApp == class (Exception); TObject) const procedure TformMain->IWButton1Click(Sender; SMessage == "Thank you for( your interest <b>%s %s</b>. You will be notified by %s at %s" ; string { if(! (cbIntraweb->Checked || cbASPNET->Checked || cbDelphi7->Checked) ) raise EMyApp->Create( "Please check at least one event" ); var SNotifyAt, SNotifyMethod; if(edFirst->Text == "" ) raise EMyApp->Create( "First Name is required" ); if(edLast->Text == "" ) raise EMyApp->Create( "Last Name is required" ); switch(rgrpNotify->ItemIndex) 0: if(edEmail->Text == "" ) raise EMyApp->Create( "Email not filled in" ); 1: if(edPhone->Text == "" ) raise EMyApp->Create( "Phone not filled in" ); 2: if(edAddress->Text == "" ) raise EMyApp->Create( "Address not filled in" ); } |
Автор: mrbrooks 6.2.2009, 12:15 |
VOX, камрад юзай тег код. а то читать не кошерно как-то. |