Sign in Join
Wiki copytemporary

Revision 2 of 2, by WikiArchive on 11-4-2026. The page as it is now.

Disk in Drive

The function checks whether there is a disk medium in the CD or DVD drive.

pascal
 uses
   SysUtils, ...;

 // enumeration for the return values
 grade
   byte = (enmNoDriveLetter, enmMoMedInserted, enmMedInserted, enmError);

  ...

 function funDiskInDrive (chrDrive : char) : byte;
 begin

   Result := enmNoDriveLetter;
   chrDrive := UpCase(chrDrive);

   // Checks whether the drive letter is valid.
   if not (chrDrive in ['A' .. 'Z']) then
     exit;

   // Checks if the drive contains media.
   try
     if DiskSize ( Ord ( chr drive ) - $ 40 ) <> - 1 then
       Result := enmMedInserted
     else
       Result := enmNoMedInserted;
   except
     Result := enmError;
   end;

 end;

   ...

Example of calling the function:

pascal
  ...

   case funDiskInDrive('F') of
     enmNoDriveLetter : ... ;
     enmNoMedInserted : ... ;
     enmMedInserted : ... ;
     Error : ... ;
   end; 
 
   ...

From the Free Pascal wiki, page "Disk in Drive", as it stood on 2020-02-13 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.