| 
| 
 | Вопрос # 2 778/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Как можно узнать готов ли  устройство для использования  (дисководов, флеш дисков)? Ест ли функция типа Isready(дисковод)
 
 Заранее спасибо!
 
|  |   Вопрос задал: Hideman (статус: Посетитель)Вопрос отправлен: 14 мая 2009, 07:18
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Такой функции нету, зато есть try ... except ... end, куда можно засунуть обращение к драйву и по возникновению исключения судить о его доступности.
 З.Ы. Могу предложить набор функций из пакета Delphi Works для работы с драйвами. Вот кусок интерфейсной части модуля dwDrives.pas - приложение.
 
 По именам функций понятно, что они, собственно, делают.
 Скачать весь пакет можно тут.
 Приложение:Переключить в обычный режим function dwApplicationHostDrive: Char;function dwAvailableDrives: TStringList;function dwCloseCD(Drive: Char): Boolean;function dwCompareDiskStruct(Drive: Char; var BPC, SPC, BPS, FC, TC: Integer; var FS, TS, DSN:
Int64): Boolean;function dwDiskInDrive(Drive: Char): Boolean;function dwDiskWriteProtected(Drive:  Char):  Boolean;function dwDriveBytesPerCluster(Drive: Char): Integer;function dwDriveBytesPerSector(Drive: Char): Integer;function dwDriveCasePreserved(Drive: Char): Boolean;function dwDriveCylinders(Drive: Char): Integer;function dwDriveFATCount(Drive: Char): Integer;function dwDriveFilesystemName(Drive: Char): String;function dwDriveFreeClusters(Drive: Char): Integer;function dwDriveFreeSpace(Drive: Char): Int64;function dwDriveHeadCount(Drive: Char): Integer;function dwDriveHiddenSectors(Drive: Char): Integer;function dwDriveIndexToLetter(Drive: Byte): Char;function dwDriveLetterToIndex(Drive: Char): Byte;function dwDriveMaxFilenameLength(Drive: Char): Integer;function dwDriveReservedSectors(Drive: Char): Integer;function dwDriveRootEntries(Drive: Char): Integer;function dwDrivesCount: Integer;function dwDriveSectorsPerCluster(Drive: Char): Integer;function dwDriveSectorsPerFAT(Drive: Char): Integer;function dwDriveSectorsPerTrack(Drive: Char): Integer;function dwDriveSerialNumber(Drive: Char): String;function dwDriveSerialNumberInt(Drive: Char): Integer;function dwDriveTotalClusters(Drive: Char): Integer;function dwDriveTotalSpace(Drive: Char): Int64;function dwDriveTracksCount(Drive: Char): Integer;function dwDriveVolumeName(Drive: Char): String;function dwEjectRemovable(const Drive: Char): TDWEjectRemovableResult;function dwFloppyReady(const Drive: char): Boolean;function dwGetDeviceParamBlock(Drive: Char; var ParamBlock: TDeviceParamBlock): Word;function dwGetDriveShellInfo(const Drive: Char): TDWDriveShellInfo;function dwGetVolumeInformationX (Drive: Char; var V : TDriveInformation): Boolean;function dwOpenCD(Drive: Char): Boolean;function dwSetDeviceParamBlock(Drive: Char; var ParamBlock: TDeviceParamBlock): Word;function dwSystemHostDrive: Char;function dwValidateDriveLetter(Drive: Char): Char;function dwValidDriveLetter(Drive: Char): Boolean;function dwVWin32(CtlCode: TVWin32CtlCode; var Regs: TDiocRegisters): Boolean;procedure dwHardDrives(AList: TStrings);procedure dwHardDrivesLong(AList: TStrings);
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 14 мая 2009, 08:25
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 14 мая 2009, 11:08; участников в обсуждении: 3. 
|   | Hideman (статус: Посетитель), 14 мая 2009, 08:36 [#1]:Почему у Visual Basic-ке имеется объект Filesystem в котором ест такая функция каторая определяет готовли устройства! А в Delphi хотя и називают его лучшим этой функции нету? |  
|   | Вадим К (статус: Академик), 14 мая 2009, 10:19 [#2]:Во первых, не путайте "функции" и "объекты". Во вторых, не разводите флейм. (попытка подогреть его уже есть)
 И на последок, надо понимать, что такое "библиотека классов".
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Hideman (статус: Посетитель), 14 мая 2009, 10:36 [#3]:то ест метод объекта я спеша писал функция! Короче имеется ли такое? |  
|   | min@y™ (статус: Доктор наук), 14 мая 2009, 11:08 [#4]:Есть нестандартные решения. Пример вот.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |