Timer使うかその処理の直前で
Application.ProcessMessages呼んでたまったメッセージを先に処理する。

>>135
一バイトずつ読み込んでこれで変換
function Bin2Str(b: Byte): string;
var i: Integer;
begin
 SetLength(Result,8);
 for i := 0 to 7 do if b and (1 shl (7-i)) = 0 then Result[i+1] = '0' else Result[i+1] = '1';
end;