2011-11-27 13 views
6

Quando apro una cartella con una OpenDialog, come posso filtrarla in modo che gli utenti possano visualizzare solo determinati file (ad esempio, Stringgrid, * .sg) ei file con qualsiasi altra estensione non compaiano nella finestra di dialogo?Come posso mostrare solo determinate estensioni di file in una finestra di dialogo a file aperto?

+2

No, non è possibile eseguire la seconda (filtra i file in base a qualcosa di diverso dall'estensione) se si trovano nella stessa cartella. Ma la soluzione giusta è quella di dare a ogni utente la propria cartella per archiviare i file e utilizzare il controllo degli accessi (diritti delle cartelle) per impedire agli utenti di vedere i rispettivi file. –

+1

Ho rimosso la seconda domanda perché è troppo diversa da quella originale. Si prega di porre l'altra domanda in un post separato. –

risposta

9

Impostare la proprietà OpenDialog.Filter sul filtro file desiderato. Puoi farlo nell'Object Inspector; fai clic sulla proprietà Filter e vedrai apparire un piccolo pulsante sul lato destro con .... Fai clic e apparirà una finestra di dialogo. Il lato sinistro è la descrizione del file (ad esempio, Excel files (*.xls)). Il lato destro è il filtro che si desidera utilizzare, come in *.xls.

OpenDialog Filter Dialog

È anche possibile impostare nel codice prima di visualizzare il vostro dialogo:

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

Naturalmente, sostituire la roba di Excel con una descrizione e la maschera che si desidera utilizzare.

2

Le proprietà Filter e FilterIndex vengono utilizzate per specificare quali estensioni di file visualizzare (notare che l'utente può ignorare il filtro manualmente, però).

L'evento OnIncludeItem viene utilizzato per abilitare/disabilitare selettivamente i singoli file/cartelle dall'essere elencati nella finestra di dialogo.

Problemi correlati