function DiskInDrive(Drive: Char): Boolean; 
// Disk could be a floppy, CD-ROM,... 
var 
  ErrorMode: word; 
begin 
  { make it upper case } 
  if Drive in ['a'..'z'] then Dec(Drive, $20); 
  { make sure it's a letter } 
  if not (Drive in ['A'..'Z']) then 
    raise EConvertError.Create('Not a valid drive ID'); 
  { turn off critical errors } 
  ErrorMode := SetErrorMode(SEM_FailCriticalErrors); 
  try 
    { drive 1 = a, 2 = b, 3 = c, etc. } 
    if DiskSize(Ord(Drive) - $40) = -1 then 
      Result := False 
    else 
      Result := True; 
  finally 
    { restore old error mode } 
    SetErrorMode(ErrorMode); 
  end; 
end; procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if DiskInDrive('a')=false then 
  begin 
    ShowMessage('Drive not ready'); 
  end; 
end;