例外エラー


あまちゃん  2013-08-25 02:05:43  No: 45144

こんにちは。
Delphi 2010およびWindows 7で開発していますDelphi初心者です。
簡単な計算プログラムを作成しているのですが、
「0による除算エラー」が出た時に、
エラーウィンドウを例えば5秒たったら、閉じることが
できますか。


  2013-08-25 03:51:36  No: 45145

できると思いますが、初心者の方なら、標準のダイアログの代わりに
自作のフォームを表示させて、タイマーなどでWM_CloseをPostMessage
させた方が簡単だと思います。

https://www.petitmonte.com/bbs/answers?question_id=4272

今回の場合、「できる」か「できないか」の質問になっていますが、
この場合、回答は、「できる」で終りになってしまいます。

どこが分からないのか、解決方針や調べた事項などを書き、もう少し
質問事項の焦点をはっきりさせて、具体的にものを聞いた方が、より
実のある回答がもらえると思います。


あまちゃん  2013-08-25 20:59:41  No: 45146

あさん、お返事ありがとうございます。
行いたいことですが、キーボードで計算のための数値を入力し、
計算させるボタンを押した時に、
計算出来ない数値を入れてしまったときに出るエラーが
Delpjiで作っていないフォームが出ています。
このフォームを5秒間ほどで閉じたいですが、
初心者では難しいですか?


  2013-08-26 07:33:42  No: 45147

同じ質問をされても回答は同じにしかなりません。

メッセージが出た瞬間を捉え、そこから時間をカウントし、
5秒後にエラーメッセージダイアログのOKボタンを押す、
という動作を実現できそうかどうか、少し考えてみると
よいのではないでしょうか。

それぞれの工程を少しずつ分解して1つずつ解決していき、
それでも力が及ばないところを質問する、というというの
がこのような技術的な掲示板だと思います。ここは、問題
を丸投げして回答を1から作成してもらう場ではないと
思います。

また、少なくとも、新規フォームを作成する方法なら望み
の動作は確実に可能です。そちらではダメなのか、だめ
ならどのような要件が必須なのか、そのような事項にまで
触れないと、前向きな議論は困難かと思います。


Harry  2013-08-26 09:14:49  No: 45148

あ さん、
あまちゃんさんはまだ基本的なことが理解できてないように思えます。
おそらく「エラーダイアログを閉じたい」が主たる目的ではなく、「エラーに邪魔されたくない」
という天然自然な要求なのではないでしょうか?
それとあまちゃんさんのレベル的に、あ さんの意図は伝わらないんじゃないかと…。
※あ さん、スパルタ路線をぶっ壊してごめんなさい。
※あまちゃんさん、バカにしたようでごめんなさい。

あまちゃんさん、
>計算出来ない数値を入れてしまったときに出るエラーが
>Delpjiで作っていないフォームが出ています。

それはエラーダイアログですね。ダイアログは重要な用語ですので覚えてください。
※ついでに。エラーダイアログとIDEに表示されるメッセージはCtrl+Cでコピーできますので、
   エラーの内容を掲示板に提示する場合などに活用してください。

エラーダイアログが出た後で、アプリ側で自動的にそれを閉じることは(普通には)出来ませんし、
誰もそのようなことを試みません。無意味、愚かだからです。

「0による除算エラー」(Division by zero.)の例外が出たということは、その時点でプログラムの
実行の継続が不能になったということです。
そうはならないように、事前に十分なチェックしておくことが基本です。
チェックした上で問題があれば計算は行わず、何か表示するなどしてユーザーにそれを伝えます。

で、最初に戻りますが、あまちゃんさんは本当に「エラーダイアログを閉じたい」のでしょうか?
それとも実は「エラーダイアログの表示を抑制したい」なのではないでしょうか?

どのようなコードを書いて悩んでいるのか、(必要なら全部)提示してもらった方が早いと思います。


Sara  2013-08-26 09:31:57  No: 45149

例えば、以下のように自分でメッセージを別フォームに表示すれば、
可能ですが、ネさんが仰っているように、そこまで求めていないような気もします。

ニアにはナア、ナイ、ナウおよび、ツアを配置
ニイにはヤアとフアを配置
ニイのヤアョノにオーーーを設定

ニアの
の下に

ヲサユイサ

を記述ィこれをしないニアからニイにアクセスできないゥ

ヲサヤニアョツアティモコヲサヤマゥサ

ヲサヲサ
ヲサヲサヲサヲサナウョヤヲサコスヲサニヤモィモヤノィナアョヤゥヲサッヲサモヤノィナイョヤゥゥサ
ヲサヲサ
ヲサヲサヲサヲサニイョフアョテヲサコスヲサァエラーが発生しましたァサ
ヲサヲサヲサヲサニイョモヘサ
ヲサヲササ

ッッェェここから下は、ニイの記述ェェッッ

ヲサヤニイョヤアヤィモコヲサヤマゥサ

ヲサヲサヲサテサ

スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアウッークッイカィ月ゥ アイコーーコイカ シ  スュアセシ中級者セ シッニセシノヘヌ ス「コッッョョョッッイョ「 ス「ー「セ 書込者ノト:ロ 」。ィ ン

0を入れられたら、それを検知したほうがいいような・・・
改善の余地は一杯ありますが、こんなのはどうでしょうか?

ヲサヤニアョツアティモコヲサヤマゥサ

ヲサヲサコヲササ
ヲサヲサコヲサモサ

ヲサヲサヤアョナヲサコスヲサニサ
ヲサヲサヤアョノヲサコスヲサオーーーサ
ヲサヲサフアョテヲサコスヲサァ計算できませんァサ
ヲサヲサフアョネサ

ヲサヲサヲサコスヲサノツィァ計算ァャヲサァ分母=ァャヲサァァゥサ
ヲサヲサヲサヲサヲサヲサヲサァーァヲサヲサ
ヲサヲサヲサヲサヲサコスヲサモヤノィゥサ
ヲサヲサヲサヲサモヘィァアーーーヲサッヲサァヲサォヲサヲサォヲサァヲサスヲサァヲサォヲサニヤモィアーーーヲサッヲサゥゥサ
ヲサヲサヲサヲサ
ヲサヲサヲサヲサフアョモサ
ヲサヲサヲサヲサヤアョナヲサコスヲサヤサ
ヲサヲササ

ヲサヤニアョヤアヤィモコヲサヤマゥサ

ヲサヲサヤアョナヲサコスヲサニサ
ヲサヲサフアョネサ


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加