Saber quais as unidades de disco (drives) estão presentes no Delphi

Inclua na seção uses: Windows

{ A função abaixo retorna uma string contendo
  as letras de unidades de discos presentes. }



function tbGetDrives: string;
var
  Drives: DWord;
  I: byte;
begin
  Result := '';
  Drives := GetLogicalDrives;
  if Drives <> 0 then
    for I := 65 to 90 do
      if ((Drives shl (31 - (I - 65))) shr 31) = 1 then
        Result := Result + Char(I);
end;

{ Para saber se uma determinada unidade está presente,
  basta fazer algo como: }
if Pos('A', tbGetDrives) > 0 then
  ShowMessage('Unidade A: presente.')
else
  ShowMessage('Unidade A: ausente.');

A string retornada pela função tbGetDrives está sempre em letras maiúsculas.