Компонент DriveComboBox

Підкажіть, будь ласка, як видати своє власне повідомлення про помилку, якщо користувач вибрав диск, який не доступний у списку компонента DriveComboBox: 1) наприклад, якщо в дисководі або сидирі немає диска, то як обробити подію при виборі відповідного диска в списку? 2) Цей компонент показує у своєму списку всі диски, які підключені до ОС. Якщо раптом у процесі роботи відключиться мережевий диск, як у цьому випадку цю подію перехопити? 3) Яка властивість визначає, що в списку компонента саме такі диски?

Можливо, треба обробити OnChange з подальшою самостійною перевіркою доступності диска.

Ось я не знаю як перевірити доступність диска?

не на все у світі є властивості.

Щоб дізнатися, треба звернутися до нього і далі в залежності від результату.

var tmpS:string; isError : boolean; begin tmpS:=GetCurrentDir; isError:=not SetCurrentDir("c:\"); SetCurrentDir(tmpS);

if isError then MessageDlg("Диск H: недоступний", mtError, [mbOk], 0); end;

Чи не могли б Ви (Dms) пояснити рядок isError:=not SetCurrentDir("c:\")?

Питання: якщо я заздалегідь не знаю, якими літерами диски називаються, то як тоді бути?

Ну що ж . isError:=not SetCurrentDir("h:\")? намагається змінити поточну директорію на h:\ і якщо все проходить вдало, то видаєtrue(isError, відповідно,false)

Все одно не працює!

Та біда, а чому ти думаєш, що не працює?

від нічого робити написав. все працює procedure TForm1.DriveComboBox1Change(Sender: TObject); var tmpS : string; tmpDisk : array [0..MAX_PATH-1] of char; isError : boolean; begin tmpS:=GetCurrentDir;

isError:=notSetCurrentDir((Sender as TDriveComboBox).Drive+":\"); SetCurrentDir(tmpS);

if isError then begin MessageDlg("Диск недоступний", mtError, [mbOk], 0); GetWindowsDirectory(@tmpDisk, MAX_PATH); (Sender as TDriveComboBox).Drive:=tmpDisk[0]; end; end;