Evitar excepciones al usar una DriveComboBox  

Enviado Por: Q3 Team
Web : http://www.q3.nu
Email: dlib@q3.nu
Fecha: 30/12/99

Truco accedido 107 veces

 


Si usamos una DriveComboBox, un DirectoryListBox y un FileListBox para navegar por los discos, si seleccionamos una diskettera o un disco extraíble, y no hay un disco insertado en la unidad, tendremos una bonita excepción en nuestra aplicación.
Para evitarlo, basta con interceptar la unión DriveComboBox -> DirectoryListBox, para poder chequear la unidad antes de que se produzca una excepción.

Para hacer esto, basta con poner este código en el evento OnChange de la DriveComboBox:


 procedure TForm1.DriveComboBox1Change(Sender: TObject);
 begin
   If FileExists(DriveComboBox1.Drive+':\NUL')
     then DirectoryListBox1.Drive:=DriveComboBox1.Drive;
 end;



Y anular la union DriveComboBox -> DirectoryListBox, es decir, borrar la propiedad DirList del DriveComboBox1:


 DriveComboBox1.DirList:='':



Ver tambien
[62 ] Saber si una unidad esta lista
[38 ] Saber si un disco está preparado
[169 ] Saber si existe un directorio
[47 ] Saber que tipo de disco es por su letra de unidad (CDrom, HD, etc):