RS232C送信バッファ残り容量調査

Comm.RemainSize

RemainSizeは、送信バッファの残りサイズを返します。

waitWriteFalseに設定した場合で、プログラムを終了する場合は、RemainSize0である事を確認して終了します。

送信バッファに未送信データーを残した間々、プログラムを終了してしまうのを防ぐためです。

procedure TForm.FormCloseQuery(Sender: TObject;var CanClose: Boolean);

begin

if (Comm1.RemainSize) > 0 then

CanClose:= False //書き込みが済んでなかったら、閉じない。

end;

procedure TForm.CloseBtnClick(Sender: TObject);

begin

repeat

Application.ProcessMessages;

until Comm. RemainSize = 0; // 送信バッファが空になるのを待つ

if Comm.OpenCheck then Comm.Cloos; // 通信ポートオープンしていたらクローズ

end;

waitWriteFalseの場合でも送信用FIFOバッファに、データーが存在する場合は、Close コマンドを実行しても、FIFOバッファが空になるまで、Closeされません。

COMMコンポーネントが、確保したバッファの内容は、Closeと同時に破棄されます。

送信の完了待ち指定を参照してください。