Trucos Otra manera de acceder a los CommonDialog

VB5, VB6

El CommonDialog control no es la única manera de acceder a los diálogos comunes de windows. Microsoft nos da una dll en los cd's de VB 5 y VB 6 que mide la mitad que el ComDlg32.ocx y no necesita poner un control en un formulario y, lo mejor de todo, tiene una propiedad Center. Para los detalles de instalación debeis mirar en \Tools\Unsupprt\DlgObj en el cd de VB5 (o \VB98\WIZARDS\PDWIZARD en el de VB6)

Añadid una referencia a DlgObjs seleccionando Microsoft Dialog Automation Objects en Proyecto | Referencias. Este código obtiene un nombre de fichero:

Public Function GetFilename(WinHandle As Long) As String
    Dim Dlg As ChooseFile
    On Error Resume Next
    Set Dlg = New ChooseFile
    With Dlg
        .Save = True
        ' Queremos un diálogo "Grabar como"
        .Center = True
        ' Queremos el diálogo centrado
        .hWnd = WinHandle ' Necesitamos una ventana padre
        .HideReadOnly = True
        ' No necesitamos el checjkox 'Abrir sólo lectura'
        .MultiSelect = False
        ' No seleccionamos múltiples ficheros
        .OverwritePrompt = True
        ' Preguntar antes de sobreescribir un fichero
        .Filters.Add "BAS Files (*.bas):*.bas" ' Máscara de los ficheros
        .Filters.Add "All Files (*.*):*.*" ' Máscara de los ficheros
        If .Show Then
            GetFilename =.Directory & "\" & .filename
        Else
            GetFilename = "" ' El usuario presionó Cancelar
    End With
    Set Dlg = Nothing
End Function

Llama a GetFileName pasándole el handle de la ventana que actua como padre.

Debug.Print GetFilename(Me.hWnd)

-Frank Mokry, Palgrave, Ontario, Canada



Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com