ну например так: (без таймера но работает)
Код:
const Size = 8192;
procedure TForm1.Button1Click(Sender: TObject);
var fFile: TFileStream;
Free,Total,TotFree: int64;
begin
fFile:= TFilestream.Create('file.dat',fmOpenWrite);
repeat
If fFile.Write(Total,Size) <> Size then ShowMessage('Не все записалось');
GetDiskFreeSpaceEx('C:\',Free,Total,@TotFree);
until Free<= 8192;//пока на диске не останется 8килобайт
fFile.Free;
end;
заполняем файл мусором (тем что в переменной Total и тем что следует после нее- криво, но для примера сойдет...) Схавал у меня все место