Cómo usar Delphi para construir un Explorador de Windows personalizado

El Explorador de Windows es lo que usa en el sistema operativo Windows para buscar archivos y carpetas. Puede crear una estructura similar con Delphi para que el mismo contenido se complete dentro de la interfaz de usuario de su programa.

Los cuadros de diálogo comunes se utilizan en Delphi para abrir y guardar un archivo en una aplicación. Si desea utilizar administradores de archivos personalizados y cuadros de diálogo de exploración de directorios, debe tratar con los componentes Delphi del sistema de archivos.

El grupo de paleta Win 3.1 VCL incluye varios componentes que le permiten crear su propio cuadro de diálogo personalizado "Abrir archivo" o "Guardar archivo": TFileListBox, TDirectoryListBox, TDriveComboBoxy TFilterComboBox.

Navegando archivos

Los componentes del sistema de archivos nos permiten seleccionar una unidad, ver la estructura jerárquica de directorios de un disco y ver los nombres de los archivos en un directorio dado. Todos los componentes del sistema de archivos están diseñados para trabajar juntos.

instagram viewer

Por ejemplo, su código verifica lo que el usuario ha hecho, por ejemplo, un DriveComboBox y luego pasa esta información a un DirectoryListBox. Los cambios en DirectoryListBox luego se pasan a un FileListBox en el que el usuario puede seleccionar los archivos necesarios.

Diseñando el formulario de diálogo

Empezar de nuevo Aplicación Delphi y seleccione la pestaña Win 3.1 del Paleta de componentes. Luego haz lo siguiente:

  • Coloque un componente TFileListBox, TDirectoryListBox, TDriveComboBox y TFilterComboBox en un formulario, manteniendo todos sus nombres predeterminados
  • Agregue un TEdit (llamado "FileNameEdit") y uno TLabel (llámalo "DirLabel").
  • Incluya algunas etiquetas con subtítulos, como "Nombre de archivo", "Directorio", "Lista de archivos de tipo" y "Unidades".

Para mostrar la ruta seleccionada actualmente como una cadena en un subtítulo de componentes DirLabel, asigne el nombre de la etiqueta a DirectoryListBox Propiedad DirLabel.

Si desea mostrar el nombre de archivo seleccionado en un EditBox (FileNameEdit), debe asignar el Nombre del objeto Editar (FileNameEdit) a FileListBox's Propiedad FileEdit.

Más líneas de código

Cuando tiene todos los componentes del sistema de archivos en el formulario, solo tiene que configurar DirectoryListBox. Unidad de propiedad y FileListBox. Propiedad de directorio para que los componentes se comuniquen y muestren lo que el usuario quiere ver.

Por ejemplo, cuando el usuario selecciona una nueva unidad, Delphi activa el DriveComboBox OnChange controlador de eventos. Haz que se vea así:

 procedimiento TForm1.DriveComboBox1Change (remitente: TObject);
beginDirectoryListBox1.Drive: = DriveComboBox1.Drive;
final;

Este código cambia la visualización en el DirectoryListBox activando su OnChange controlador de eventos:

 procedimiento TForm1.DirectoryListBox1Change (remitente: TObject);
beginFileListBox1.Directory: = DirectoryListBox1.Directory;
final;

Para ver qué archivo ha seleccionado el usuario, debe usar el OnDblClick evento de la FileListBox:

 procedimiento TForm1.FileListBox1DblClick (remitente: TObject);
beginShowmessage ('Seleccionado:' + FileListBox1.FileName);
final;

Recuerde que la convención de Windows es hacer doble clic para elegir el archivo, no un solo clic. Esto es importante cuando trabaja con un FileListBox porque usar una tecla de flecha para moverse a través de un FileListBox llamaría a cualquier controlador OnClick que haya escrito.

Filtrando la pantalla

Use un FilterComboBox para controlar el tipo de archivos que se muestran en un FileListBox. Después de configurar la propiedad FileList de FilterComboBox con el nombre de un FileListBox, establezca la propiedad Filter en los tipos de archivo que desea mostrar.

Aquí hay un filtro de muestra:

 FilterComboBox1.Filter: = 'Todos los archivos (*. *) | *. * | Archivos de proyecto (* .dpr) | * .dpr | Unidades Pascales (* .pas) | * .pas ';

Consejos

Configuración de DirectoryListBox. Unidad de propiedad y FileListBox. La propiedad de directorio (en los controladores de eventos OnChange previamente escritos) en tiempo de ejecución también se puede hacer en tiempo de diseño. Puede lograr este tipo de conexión en tiempo de diseño estableciendo las siguientes propiedades (desde el Inspector de objetos):

DriveComboBox1.DirList: = DirectoryListBox1
DirectoryListBox1.FileList: = FileListBox1

Los usuarios pueden seleccionar varios archivos en un FileListBox si su propiedad MultiSelect es True. El siguiente código muestra cómo crear una lista de selecciones múltiples en un FileListBox y mostrarlo en un SimpleListBox (algún control ListBox "ordinario").

 var k: entero; ...
con FileListBox1 hacer
si SelCount> 0, entonces
para k: = 0 a elementos. Count-1 do
si se selecciona [k] entonces
SimpleListBox. Artículos. Agregar (elementos [k]);

Para mostrar nombres de ruta completos que no se acortan con puntos suspensivos, no asigne un nombre de objeto Label a la propiedad DirLabel de un DirectoryListBox. En su lugar, inserte una etiqueta en un formulario y establezca su propiedad de título en el evento OnChange de DirectoryListBox en DirectoryListBox. Propiedad de directorio.

instagram story viewer