Советы по Delphi

         

Как можно узнать о готовности носителя без выскакивающего сообщения об ошибке?


Своим опытом делится Олег Кулабухов:

Можно использовать SetErrorMode() для предотвращения появления подобных сообщений.

    function IsDriveReady(DriveLetter : char) : bool;
var
OldErrorMode : Word;
OldDirectory : string;
begin
OldErrorMode := SetErrorMode(SEM_NOOPENFILEERRORBOX);
GetDir(0, OldDirectory);
{$I-}
ChDir(DriveLetter + ':\');


{$I+}
if IoResult <> 0 then
Result := False
else
Result := True;

ChDir(OldDirectory);
SetErrorMode(OldErrorMode);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if not
IsDriveReady('A') then
ShowMessage('Drive Not Ready') else
ShowMessage('Drive is Ready');
end;

[001867]



Содержание раздела