Как мне проверить готовность диска 'a:'? I
function DiskInDrive(const Drive: char): Boolean; var DrvNum: byte;
EMode: Word;
beginresult := false;
DrvNum := ord(Drive);
if DrvNum >= ord('a') then dec(DrvNum,$20);
EMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
if DiskSize(DrvNum-$40) <> -1 then result := true
else messagebeep(0);
finally
SetErrorMode(EMode);
end;
end;
|
Дополнение от читателя:
...можно для пущей функциональности добавить ряд строк:
function DiskInDrive(const Drive: char): Boolean; var DrvNum: byte; EMode: Word; begin result := true; // было false DrvNum := ord(Drive); if DrvNum >= ord('a') then dec(DrvNum,$20); EMode := SetErrorMode(SEM_FAILCRITICALERRORS); try while DiskSize(DrvNum-$40) = -1 do begin // при неудаче выводим
диалогif (Application.MessageBox('Диск не готов...'+chr(13)+chr(10)+
'Повторить?',PChar('Диск '+UpperCase(Drive)),mb_OKCANCEL+
mb_iconexclamation{IconQuestion})=idcancel) then begin
Result:=false;
Break;
end;
end;
finallySetErrorMode(EMode); end; end; |
С уважением, Галимарзанов Фанис [000076]