Форум: "Основная";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];
Вниз
i/o error 21 Найти похожие ветки
← →
griff (2003-09-12 14:10) [0]Использую стандартные компоненты DriveComboBox и DirectoryListBox. При обращении к пустому диску А: (или CD) выходит сообщение "I/O error 21". Как мне его перехватить и выдать вместо него свое?
Оказалось что {I-} на него не распространяется, а DriveComboBoxChange срабатывает уже после того, как выдалось сообщение об ошибке.
← →
panov (2003-09-12 14:17) [1]{$I-} распространяется на все диски.
← →
griff (2003-09-12 14:20) [2]Имелись в виду не диски а ошибка за нумером 21.
← →
хз (2003-09-13 03:02) [3]procedure TFrmMain.DComboBoxChange(Sender: TObject);
begin
try
DListBox.Drive:=DComboBox.Drive;
except
on EInOutError do
//пишешь чего надо...
end;
end;
Кстати, эта ошибка лично у меня наблюдалась только на 98, 2000 и XP не выдают.
← →
griff (2003-09-16 09:31) [4]не, не канает :(
сообщение об ошибке все равно выдается
← →
Song (2003-09-16 09:34) [5]SetErrorMode()
← →
griff (2003-09-16 10:01) [6]блин, и это тоже не помогло ...
← →
griff (2003-09-17 11:40) [7]Все-таки, что же я не так делаю ?
////////////////////////////////////////////////////////////
...
{I-}
Seterrormode(1);
...
procedure TFormInst.DriveComboBox1Change(Sender: TObject);
begin
try
DirectoryListBox1.Drive := DriveComboBox1.Drive;
except
on EInOutError do ShowMessage("Устройство не готово.");
end;
end;
////////////////////////////////////////////////////////////
в результате - все равно получаю сообщение об ошибке :((
← →
Palladin (2003-09-17 11:44) [8]ну комментарий это круто... и он ни о чем компилятору не говорит...
{$I-}
← →
griff (2003-09-17 12:08) [9]извиняюсь, конечно {$I-}
но это ничего не меняет - я получаю сообщение об ошибке :(
← →
Palladin (2003-09-17 12:16) [10]нужно еще снять IOResult, после обращения к ней ошибка после директивы {$I+} появится не должна
← →
griff (2003-09-17 12:23) [11]это понятно, не понятно где это все писать. При попытке зайти на диск А:\ , где отсутствует дискета, я получаю сообщение об ошибке. При этом в процедуру TFormInst.DriveComboBox1Change я вообще не попадаю
← →
Palladin (2003-09-17 12:27) [12]что именно писать?
AssignFile(myfile,"myfile");
{$I-}
reset(myfile);
Res:=IOResult;
{$I+}
If res<>0 then ShowMessage("Ошибка открытия") else
begin
...
CloseFile(myfile);
end;
← →
dataMaster (2003-09-17 12:33) [13]Может это как-нибудь поможет?
http://delphibase.endimus.com/?action=viewfunc&topic=harddisk&id=10415
← →
Sandman25 (2003-09-17 12:37) [14]Мои опыты показали, что сообщение выводится при присваивании DirectoryListBox1.Drive.
Причем это не Exception, перехватить его нельзя. Пишите свой компонент или исправляйте существующий TDirectoryListBox.
← →
griff (2003-09-17 13:09) [15]Sandman25 ©
Такие подозрения зародились давно ... Видимо, надо было услышать это еще от кого-нибудь ...
← →
Sandman25 (2003-09-17 13:21) [16]>Такие подозрения зародились давно ... Видимо, надо было услышать это еще от кого-нибудь ...
Нет, надо было это сразу проверить. Я ведь раньше об этом не знал, а просто проверил за 5 минут под влиянием Вашей ветки :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c