通常は受信エラーを表示しません。
間違えると、エラーを次々と表示し、次へ進むのが大変になるからです。
ReadErrShow リードエラーの表示指定
ShowOn リードエラー表示
ShowOff リードエラー非表示
evErr エラー割り込みマスク指定
例
Comm1.ReadErrShow := ShowOff;
Comm1.EventMask := [evRxchar];
Comm1.ReadErrShow := ShowOn;
Comm1.EventMask := [evRxchar,evErr];
受信エラー内容を表示させるのには、
evErr と
ShowOn を同時に行います。
evErrを指定すると、ブレークもエラーとして取り扱われているため、
ShowOn,ShowOffに関係なくブレークの受信は出来なくなります。
evBreakを有効して
CommEvntでブレークを検出する場合は
evErrを有効にしてはいけません。
ShowOnが無く、
evErrのみの場合は通常の
CommErrEvntの割り込みになります。
EvErrと
ShowOnの両方を設定時は、画面にエラーメッセージが表示されます。
ShowOff
evErr (True)で、通常の
CommErrEvnt 例
procedure TForm1.Comm1CommErrEvent(Sender: TObject;; ErrCode: Cardinal);
begin
ここにエラー時の実行文を入れます。
if (ErrorCode and CE_BREAK) <> 0 then *****
; // evErr 使用時の
Break受信処理
end;
アプリのデバッグ時のみ
ShowOn にして、デバッグが済んだら、
ShowOffにしておきましょう。
現在、専用のIC、ケーブルを使用するため、お互いの通信設定が合っていれば、通信エラーが発生することは、有りません。
受信エラーは、エラーのある受信時では発生せず、次の文字受信時に、エラーの確認が出来ます。
パリティエラー、フレーミィングエラー、オバーランエラー等の確認ができます。
(
CE_BREAK, CE_FRAME, CE_OVERRUN, and CE_RXPARITY等)
CommErrEvntを参照してください。