Компонент DriveComboBox
Можете ли да ми кажете как да издам собствено съобщение за грешка, ако потребителят е избрал устройство, което не е налично в списъка с компоненти на DriveComboBox: 1) например, ако няма устройство в устройството или sidir, как да се справя със събитието, когато съответното устройство е избрано в списъка? 2) Този компонент показва в своя списък всички устройства, които са свързани към операционната система. Ако внезапно мрежово устройство бъде прекъснато по време на работа, как мога да прихвана това събитие в този случай? 3) Кое свойство определя, че такива дискове са в списъка на компонента?
Може би е необходимо да се обработи OnChange с последваща самопроверка на наличността на диска.
Така че не знам как да проверя наличността на диска?
не всичко в света има свойства.
За да разберете, трябва да се свържете с него и след това, в зависимост от резултата.
var tmpS : низ; isError : boolean; започнете tmpS:=GetCurrentDir; isError:=not SetCurrentDir("c:\"); SetCurrentDir(tmpS);
if isError then MessageDlg("Диск H: недостъпен", mtError, [mbOk], 0); край;
Бихте ли (Dms) обяснили реда isError:=not SetCurrentDir("c:\")?
Въпрос: ако не знам предварително с какви букви се наричат дисковете, какво трябва да направя?
добре . isError:=not SetCurrentDir("h:\")? опитва се да промени текущата директория на h:\ и ако всичко върви добре, връщаtrue(съответно isError,false)
Все още не работи!
Да, проблем, защо мислиш, че това не работи?
от нищо за правене писа. всичко работи procedure TForm1.DriveComboBox1Change(Sender: TObject); var tmpS : низ; tmpDisk : масив [0..MAX_PATH-1] от char; isError : boolean; започнете tmpS:=GetCurrentDir;
isError:=неSetCurrentDir((Подател като TDriveComboBox).Drive+":\"); SetCurrentDir(tmpS);
if isError then begin MessageDlg("Дискът не е наличен", mtError, [mbOk], 0); Вземете WindowsDirectory(@tmpDisk, MAX_PATH); (Подател като TDriveComboBox).Drive:=tmpDisk[0]; край; край;