| 
| 
 | Вопрос # 3 865/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!хочу узнать есть ли диск в приводе. использую функцию
 Result := GetDiskFreeSpace(path,
 SectorsPerCluster,
 BytesPerSector,
 NumberOfFreeClusters,
 TotalNumberOfClusters);
 в случае отсутствия диска в приводе выскакивает сообщение "---------------------------
 Clientapplicationproject: ClientApplicationProject.exe - Диск отсутствует
 ---------------------------
 В устройстве нет диска. Вставьте диск в устройство F:.
 ---------------------------
 Отмена   Повторить   Продолжить
 ---------------------------
 "
 как избежать вывода этого сообщения?
 
|  |   Вопрос задал: AlexMPEI (статус: 1-ый класс)Вопрос отправлен: 9 марта 2010, 16:22
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Паровоз Здравствуйте, AlexMPEI!
 function DiskPresent(Drive:Byte):Boolean;
//Drive 0 = Current, 1 = A, 2 = B, ...
var
  OldMode:Word;
begin
  Result:=False;
  OldMode:=SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    if DiskSize(Drive)<>-1 then Result:=True;
  finally
    SetErrorMode(OldMode);
  end
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  If DiskPresent(6)//F
  then Edit1.Text:='Drive is Ready'
  else Edit1.Text:='Drive is not Ready';
end;
|  | Ответ отправил: Паровоз (статус: 10-ый класс)Время отправки: 9 марта 2010, 16:43
 
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 9 марта 2010, 16:56; участников в обсуждении: 2. 
|   | Вадим К (статус: Академик), 9 марта 2010, 16:35 [#1]:try - except? Галочка "подтверждения прочтения" - вселенское зло. |  
|   | AlexMPEI (статус: 1-ый класс), 9 марта 2010, 16:56 [#2]:Паровоз: спасибо, работает! 
 Вадим К: пробовал. это не эксепшн, а диалог, поэтому не попадает в эксепт.
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |