Common Dialog Control

Dialog Otevřít/Uložit
Dialog pro otevření souboru je možné využít například pro specifikaci souboru, který si přeje uživatel Vaší aplikace otevřít, načíst a podobně. Je vhodné před vyvoláním dialogu nastavit některé jeho parametry, aby byl dialog co nejvíce srozumitelný a usnadňoval práci:

Parametr Změny...
DialogTitle Titulek dialogového okna 
Filter Typy souborů, které se budou zobrazovat
FilterIndex Defaultní typ souboru ze sady Filter
Flags Uživatelská nastavení, jako například přepínač pro zobrazení 
read-only souborů
CancelError Zda se vygeneruje chyba, pokud uživatel klikne na tlačítko Storno

Následující kód zobrazí dialog Otevřít se skrytým přepínačem pro read-only soubory. Seznam souborů, které bude dialog zobrazovat bude filtrován pouze pro dokumenty Word (*.doc) a sešity Excel (*.xls). Dialog Vám neumožní vybrat soubory, které neexistují:

' Nastavení titulku okna
CommonDialog1.DialogTitle = "Otevřít soubor ..."

' Nastavení filtru na dokumenty Word a sešity Excel
CommonDialog1.Filter = "Dokumenty Word (*.doc)|*.doc|Sešity Excel (*.xls)|*.xls"

' Nastavení defaultního typu na dokumenty Word
CommonDialog1.FilterIndex = 1

' Nastavení  vlastností dialogu - soubor musí existovat a skrytí Read-Only
' Více parametrů, které můžete použít pro různé typy dialogů najdete v nápovědě
CommonDialog1.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly

' Nastavení vyvolání chyby, pokud je stisknuto tlačítko Storno
CommonDialog1.CancelError = True

On Error Resume Next
' Zobrazení dialogu
CommonDialog1.ShowOpen
If Err Then
    ' Pokud běží kód tudy, tak bylo stisknuto tlačítko Storno
    Msgbox "Dialog byl stornován"
    Exit Sub
End If
Msgbox "Zvolený soubor: " & CommonDialog1.FileName

Vlastnost Filter je řetězec, který má následující formát:

"FileTypeText1 |FileTypeExtension1 | FileTypeText2 | FileTypeExtension2"

Vlastnost FileName vrací celou cestu k souboru včetně jeho jména a přípony. Vlastnost FileTitle vrací pouze jméno souboru, a může být využita například ke změně titulku okna:

Form1.Caption = "Text ze souboru: " & CommonDialog1.FileTitle

Následující kód zobrazí dialog Uložit. Filtr bude nastaven na textové soubory (*.txt) a všechny soubory (*.*). Skryje soubory pouze pro čtení, při pokusu o přepsání souboru se Vás dotáže na potvrzení operace a umožní uložit soubor pouze do složky, která již existuje (čili nebude možné vytvořit novou):

' Nastavení titulku okna dialogu
CommonDialog1.DialogTitle = "Uložit soubor ..."

' Nastavení filtru na typy sobourů
CommonDialog1.Filter = "Textové soubory (*.txt)|*."|Všechny soubory (*.*)|*.*"

' Nastavení defaultního typu na textové soubory
CommonDialog1.FilterIndex = 1

' Nastavení vlastností dialogu
CommonDialog1.Flags = cdlOFNHideReadOnly + cdlOFNOverwritePrompt _
+ cdlOFNPathMustExist

' Při stisku Storno se bude generovat chyba
CommonDialog1.CancelError = True

On Error Resume Next
' Zobrazení dialogu
CommonDialog1.ShowSave
If Err Then
    Msgbox "Dialog byl stornován"
    Exit Sub
End If

Msgbox "Uložili jste soubor jako:  " & CommonDialog1.FileName

Zpět Další

Autor: The Bozena