![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите !!! [D6, Win95/98, WinXP]
Мак © (2002-09-18 05:26:00)Господа! Подскажите ,пожайлуста, как мне определить,что User вставил дискету.
AME (2002-09-18 10:16:00) [1]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;
////////////////////////////////////////
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;
finally
SetErrorMode(EMode);
end;
end;
//copyrigth "Kuliba"
Viktor Kushnir (2002-09-18 07:23:00) [2]Никак, пока не попытаешься с нее что-нибудь считать. Например найти на ней файлы.