Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Uso y error de un TdriverComboBox (https://www.clubdelphi.com/foros/showthread.php?t=64673)

Rako 14-04-2009 14:35:09

Uso y error de un TdriverComboBox
 
Hola, estoy usando un TDriverComboBox con un TDirectoryListBox. El caso es q en en el drivercombobox aparecen todas las unidades del PC, incluidos Cd-Rom, DVD y llaves USB.

Cuando seleccionas una de esas, salta el error "I/O error 21" y no veo donde se capturaria esa excepcion. (en el onchange del directoryList no llega ni a entrar)

O como se podria hacer para q solo aparecieran los discos duros "validos" ??

Muchas gracias por adealantado

Rako 16-04-2009 12:34:36

Ya esta solucionado. El problema estaba en no poner en la propiedad Dirlist el directorylistbox para que no lo haga automatico y poder probar primero si peta o no.


procedure TTInicial.DriveComboBox1Change(Sender: TObject);
var
OldErrMode: DWORD;
begin
try
OldErrMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
DirectoryListBoxEx1.Drive := DriveCombobox1.Drive;
finally
SetErrorMode(OldErrMode);
end;
except on E: EInOutError do begin
DriveCombobox1.Drive := DirectoryListBoxEx1.Drive;
MessageDlg('No se ha podido cambiar a dicho dispositivo. Por favor seleccione uno correcto del disco duro', mtWarning, [mbOK], 0);
end;
end;
end;

Rako 16-04-2009 12:36:21

Ya esta solucionado. El problema estaba en no poner en la propiedad Dirlist el directorylistbox para que no lo haga automatico y poder probar primero si peta o no.


Código:

procedure TTInicial.DriveComboBox1Change(Sender: TObject);
var
    OldErrMode: DWORD;
begin
    try
        OldErrMode := SetErrorMode(SEM_FAILCRITICALERRORS);
        try
            DirectoryListBoxEx1.Drive := DriveCombobox1.Drive;
        finally
            SetErrorMode(OldErrMode);
        end;
    except on E: EInOutError do begin
          DriveCombobox1.Drive := DirectoryListBoxEx1.Drive;
          MessageDlg('No se ha podido cambiar a dicho dispositivo. Por favor      seleccione uno correcto del disco duro', mtWarning, [mbOK], 0);
  end;
  end;
end;



La franja horaria es GMT +2. Ahora son las 22:25:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi