var d, i: Integer; begin d := Windows.GetLogicalDrives(); for i := 0 to 32 do if ((1 shl i) and d) <> 0 then Str.Add(Chr(i + Ord('A'))+':\'); end;
とやるのと
var d: Integer; c: Char; begin d := Windows.GetLogicalDrives(); for c := 'A' to 'Z' do if ((1 shl (Ord(c) - 1)) and d) <> 0 then Str.Add(c + ':\'); end; とやるのとじゃどっちが賢いんでしょうか