2011-11-27 17 views
6

Cuando abro una carpeta con un OpenDialog, ¿cómo puedo filtrarlo para que los usuarios puedan ver solo ciertos archivos (por ejemplo, Stringgrid, * .sg) y los archivos con cualquier otra extensión no aparecen en la ventana de diálogo?¿Cómo puedo mostrar solo ciertas extensiones de archivo en un cuadro de diálogo de archivo abierto?

+2

No, no puede hacer la segunda (filtrar archivos basados ​​en algo que no sea la extensión) si están en la misma carpeta. Pero la solución correcta para eso es darle a cada usuario su propia carpeta para almacenar archivos, y usar control de acceso (derechos de carpeta) para evitar que los usuarios vean los archivos de los demás. –

+1

He eliminado su segunda pregunta porque es muy diferente de la original. Por favor haga su otra pregunta en una publicación separada. –

Respuesta

9

Establezca la propiedad OpenDialog.Filter en el filtro de archivos que desee. Puede hacer esto en el Inspector de Objetos; haga clic en la propiedad Filter y verá que aparece un pequeño botón en el borde derecho con .... Haga clic en eso y verá aparecer un cuadro de diálogo. El lado izquierdo es la descripción del archivo (por ejemplo, Excel files (*.xls)). El lado derecho es el filtro que desea usar, como en *.xls.

OpenDialog Filter Dialog

También puede establecer en el código antes de mostrar su diálogo:

OpenDialog1.Filter := `Excel files (*.xls)|*.xls`; 

Por supuesto, cambia las cosas de Excel con cualquier descripción y la máscara que desea utilizar.

2

Las propiedades Filter y FilterIndex se usan para especificar qué extensiones de archivo mostrar (sin embargo, tenga en cuenta que el usuario puede anular el filtro manualmente).

El evento OnIncludeItem se usa para permitir o no permitir que los archivos/carpetas individuales se muestren en el cuadro de diálogo.

Cuestiones relacionadas