|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.11.2007, 16:32 | #1 |
Пользователь
Регистрация: 10.11.2007
Сообщений: 38
|
delphi - как обработать ошибку перехода на пустой cd-rom?
Проблема такая: перетащил из палитры компонентов Win 3.1 следующие: FileListBox, DirectoryListBox, DriveComboBox, Label и Edit. Все связал между собой, все прекрасно работает, пока в запущенной программе не выбираю из DriveComboBox диск e - дисковод cd/dvd. Если в нем нет диска, то программа выдает ошибку ввода-вывода #21 и вылетает. Какое событие нужно обработать, чтоб не позволить программе самовольно прерываться?
|
10.03.2008, 22:59 | #2 |
Пользователь
Регистрация: 22.01.2008
Сообщений: 78
|
можно проверить готов ли диск через функцию
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('E') = true then //диск Е ShowMessage('Drive Not Ready') else ShowMessage('Drive is Ready'); end; end. и сделай так, чтобы программа не выполнялась, если Drive Not Ready |
10.03.2008, 23:01 | #3 |
Пользователь
Регистрация: 22.01.2008
Сообщений: 78
|
Вот, я сделал бы так. при выборе диска, если он доступен - то он открывается.
Код:
по этому я там if (i mod 2)<>0 then приписал, чтобы через раз выполнялось. У меня работает, надеюсь помог... хотя наверняка есть способ проще Последний раз редактировалось Костя КС; 11.03.2008 в 20:58. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите найти ошибку (Delphi) | Rigard | Помощь студентам | 4 | 23.07.2008 03:06 |
Как обработать исключение? | XPAiN | БД в Delphi | 9 | 16.05.2008 15:09 |
Как в Си обработать нажатие управлавляющих клавиш ? | feranic | Общие вопросы C/C++ | 5 | 14.04.2008 19:20 |
Оператор безусловного перехода | Смирнов Алексей | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 16.10.2007 19:37 |