Comm.RemainSize
RemainSizeは、送信バッファの残りサイズを返します。
waitWriteを
Falseに設定した場合で、プログラムを終了する場合は、
RemainSizeが
0である事を確認して終了します。
送信バッファに未送信データーを残した間々、プログラムを終了してしまうのを防ぐためです。
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;
waitWriteが
Falseの場合でも送信用
FIFOバッファに、データーが存在する場合は、
Close コマンドを実行しても、
FIFOバッファが空になるまで、
Closeされません。
COMMコンポーネントが、確保したバッファの内容は、
Closeと同時に破棄されます。
送信の完了待ち指定
を参照してください。