15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как открывать стандартные диалоги Open, Save, Select Color и Print

Данный пример показывает, как использовать элемент управления Common Dialog для отображения диалоговых окошек Open, Save, Select Colour и Print.

Сперва добавьте контрол Common Dialog на Вашу форму (предварительно необходимо добавить компонент в проект Project | Components). Далее добавьте text box, и назовите его txtData. Так же потребуется добавить несколько кнопок для отображения различных диалоговых окошек. Назовём их cmdOpen, cmdSave, cmdColour, и cmdPrint, и установим их описания (заголовки) соответственно. В заключении, добавьте следующий код.

Private Sub cmdColour_Click()
    On Error GoTo errhandler
    CommonDialog1.CancelError = True
       
    ' Показываем диалоговое окно выбора цвета
    CommonDialog1.ShowColor
    ' Устанавливаем цвет фона формы выбранным цветов
    Me.BackColor = CommonDialog1.Color
    Exit Sub
errhandler:
    Select Case Err
    Case 32755 '  В диалоге нажата кнопка "Отмена" (Cancel)
        MsgBox "you cancelled the dialog box"
    Case Else
        MsgBox "Unexpected error. Err " & Err & " : " & Error
    End Select
End Sub
Private Sub cmdOpen_Click()
On Error GoTo errhandler
    CommonDialog1.CancelError = True
    ' Устанавливаем флаги
    CommonDialog1.Flags = cdlOFNHideReadOnly + cdlOFNPathMustExist + cdlOFNFileMustExist
    ' Устанавливаем фильтры
    CommonDialog1.Filter = "All Files (*.*)|*.*|RTF (*.rtf)|*.rtf|Text Files (*.txt)|*.txt"
   
    ' Отображаем диалоговое окно Save
    CommonDialog1.Filename = ""
    CommonDialog1.ShowOpen
    txtData.Text = "File Selected: " & CommonDialog1.Filename
    Exit Sub
errhandler:
    Select Case Err
    Case 32755 '  В диалоге нажата кнопка "Отмена" (Cancel)
        MsgBox "you cancelled the dialog box"
    Case Else
        MsgBox "Unexpected error. Err " & Err & " : " & Error
    End Select
End Sub

Private Sub cmdPrint_Click()
    StopPrinting = False
' Set CancelError is True
On Error GoTo errhandler
   
    CommonDialog1.PrinterDefault = True
    CommonDialog1.CancelError = True

    ' Устанавливаем флаги
    CommonDialog1.Flags = cdlPDReturnDC + cdlPDNoPageNums
    CommonDialog1.ShowPrinter

    Printer.Print txtData.Text
    Printer.EndDoc
    Exit Sub
errhandler:
    Select Case Err
    Case 32755 '  В диалоге нажата кнопка "Отмена" (Cancel)
        MsgBox "you cancelled the dialog box"
    Case Else
        MsgBox "Unexpected error. Err " & Err & " : " & Error
    End Select
End Sub

Private Sub cmdSave_Click()
    On Error GoTo errhandler
    CommonDialog1.CancelError = True
    ' Устанавливаем флаги
    CommonDialog1.Flags = cdlOFNHideReadOnly + cdlOFNOverwritePrompt + cdlOFNPathMustExist
    ' Устанавливаем фильтры
    CommonDialog1.Filter = "All Files (*.*)|*.*|RTF (*.rtf)|*.rtf|Text Files (*.txt)|*.txt"
    ' Указываем фильтр поумолчнию
   
    ' Отображаем диалоговое окно Save
    CommonDialog1.Filename = ""
    CommonDialog1.ShowSave
    ' Устанавливаем значение текстового поля
    txtData.Text = "File Selected: " & CommonDialog1.Filename
    Exit Sub
errhandler:
    Select Case Err
    Case 32755 '  В диалоге нажата кнопка "Отмена" (Cancel)
        MsgBox "You cancelled the dialog box"
    Case Else
        MsgBox "Unexpected error. Err " & Err & " : " & Error
    End Select
End Sub