Sección de tutoriales y manuales vb

Clic para descargar Velneo Open source Software - Plataforma para el desarrollo de aplicaciones empresariales sobre base de datos

 

Cuadro de diálogo de fuente

Volver al índice








 

 

 

En esta página se describe el uso básico del cuadro de diálogo de windows que permite seleccionar fuentes

Contenido :

 

 


1 - Introducción

Para poder utilizar dicho cuadro de diálogo, hay que incluir al proyecto el control ocx Microsoft Common Dialog Controls. desde el menú Proyecto en la opción componentes.

Nota: en este enlace podés ver el uso de los demás cuadros de diálogo Controles Visual basic

 

La Ventana para agregar el control

 


2 - Método ShowFont

El método ShowFont es el que llama y permite visualizar el cuadro de diálogo.

 

vista previoa del la ventana para seleccionar fuentes del sistema

 

Si por ejemplo al presionar un Commandbutton ejecutamos el método ShowFont:

 

Private Sub Command1_Click()

CommonDialog1.ShowFont

End Sub

 

Saldrá el siguiente mensaje de error:

 

vista del mensaje de error

 

Para solucionar esto y poder desplegar el CommonDialog, hay que establecer en la propiedad Flags algunos de los valores de constantes que determinan que fuentes mostrar y que tipo: fuentes de pantalla, fuentes impresora, ambas, fuentes TrueType etc..

La lista de constantes para poder especificar en la propiedad Flags, como también ver su descripción, las podés acceder desde el examinador de objetos de visual basic, en el apartado Clases > FontsConstants.

 

vista previa del examinador de objetos de vb para acceder a las constantes

 


3 - Flags - Fuentes de pantalla y fuentes de impresora

Lo siguiente, al llamar al cuadro de diálogo, visualiza las fuentes tanto de pantalla como las de impresión que estén disponibles, mediante la constante cdlCFBoth para la propiedad Flags

 

Private Sub Command1_Click()

'El cuadro de diálogo muestra las fuentes _
 de pantalla e impresora disponibles.

CommonDialog1.Flags = cdlCFBoth

'Abre
CommonDialog1.ShowFont

End Sub 

 

Para listar solo las de pantalla usar el valor cdlCFScreenFonts. Para que el cuadro de diálogo sólo muestre las fuentes compatibles con la impresora, usar el valor cdlCFPrinterFonts.


4 - Flags ( Efectos de fuente )

Como se ve en la imagen anterior , el cuadro de diálogo no presenta las opciones para Efectos de fuente, establecer el color, vista previa e información de las mismas, tachado y subrayado

Para poder habilitar esta opción hay que usar la constante cdlCFEffects. Al especificar en la propiedad Flags dicho valor, el mismo se desplegará de la siguiente forma:

 

vista de la ventana con las opciones extra para las fuentes, como el tachado, color etc..

 

 

5 - Ejemplos

 

Colocar un CommonDialog y un CommndButton

 

Private Sub Command1_Click()

'El cuadro de diálogo muestra las fuentes _
 de pantalla e impresora disponibles y con la opción _
 de tachado, subrayado y efectos de color.

CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects

'Abre
CommonDialog1.ShowFont

End Sub 

 

Este otro ejemplo , al presionar un control CommandButton, despliega el cuadro de diálogo para seleccionar una fuente y el estilo ( negrita, el tamaño etc... )

Luego recorre en un bucle For-Each todos los controles del formulario, estableciendo las propiedades de la fuente que se seleccionó , a los controles Label que haya en el Formulario

Colocar un control CommonDialog, un Command1 para abrirlo, y varios controles de cualquier tipo, y también por supuesto algunos controles Label

 

Private Sub Command1_Click()

Dim El_Control As Control


CommonDialog1.CancelError = True

CommonDialog1.Flags = cdlCFScreenFonts Or cdlCFEffects

On Error Resume Next


'Abre el diálogo
CommonDialog1.ShowFont



If Err.Number = 0 Then

For Each El_Control In Me.Controls

    If TypeOf El_Control Is Label Then
       
       ' Asigna al control Label las propiedades de fuente _
       seleccionadas en el cuadro de diálogo
       
       'Nombre
       El_Control.FontName = CommonDialog1.FontName
       
       'Negrita
       El_Control.FontBold = CommonDialog1.FontBold
       
       'Tamaño
       El_Control.FontSize = CommonDialog1.FontSize
       
       ' estilo Tachado
       El_Control.FontStrikethru = CommonDialog1.FontStrikethru
       
       ' Subrayada
       El_Control.FontUnderline = CommonDialog1.FontUnderline
       
       'estilo cursiva de la fuente
       El_Control.FontItalic = CommonDialog1.FontItalic
    
    End If

Next

  ElseIf Err.Number = 32755 Then
    ' Se presionó cancelar
  Else
    'Otro error
    MsgBox Err.Number & ": " & Err.Description, vbCritical, " Error "
  End If


End Sub

Private Sub Form_Load()
Command1.Caption = " Establecer fuente "
End Sub

 

 

Nota: Para poder aplicar el color seleccionado de la lista de colores para la fuente, cuando el cuadro de diálogo permite mostrar Efectos ( color, subrayado etc..) , se debe aplicar a la propiedad ForeColor del control, el valor de la propiedad Color del Commondialog, por ejemplo

 

El_Control.ForeColor = El_CommonDialog.Color

 


6 - Desplegar en el cuadro de diálogo sólo fuentes True Type

 

Para ello hay que usar la constante cdlCFTTOnly.

 

Private Sub Form_Load()

' Lista las Fuentes de pantalla compatibles y _
  las de tipo trueType
CommonDialog1.Flags = cdlCFTTOnly Or cdlCFScreenFonts

'Abre el diálogo
CommonDialog1.ShowFont
End Sub 

 


7 - Seleccionar los tamaños de fuente dentro de un intervalo

 

Para poder desplegar el cuadro de diálogo, con un mínimo y un máximo de tamaño para las fuentes, se debe usar la constante cdlCFLimitSize.

Los valores para el Mínimo de tamaño se deben indicar en la propiedad Min , y el máximo en la propiedad Max.

Ejemplo:

 

Private Sub Command1_Click()

On Error GoTo ErrSub

With CommonDialog1
    
    .CancelError = True
    'Valor mínimo y máximo
    .Min = 10
    .Max = 16

End With

' Indicamos la propiedad Flags, que liste las fuentes de pantalla _
  y con el intervalo indicado en Min y Max para el tamaño
CommonDialog1.Flags = cdlCFScreenFonts Or cdlCFLimitSize

'Abre el diálogo
CommonDialog1.ShowFont

Exit Sub

ErrSub:

    If Err.Number = 32755 Then
       Err.Number = 0
       Exit Sub
    End If
End Sub

 


8 - Flag para interceptar fuentes y estilos que no existen

 

Hay un valor para pasarle a la propiedad Flags que permite disparar y mostrar un mesaje en caso de que se quiera seleccionar una fuente y/o estilo que no existe, este se llama cdlCFForceFontExist.

Por ejemplo abrimos el CommonDialog y escribimos un nombre de fuente inexistente ( aaaaaa ..)

 

...Al presionar Aceptar, automáticamente Visual basic desplegará el mensaje:

 

vista del mensaje que avisa que la fuente seleccionada no existe en el sistema

 

El código de esto último sería

 

    
CommonDialog1.CancelError = True
    
' Indicamos la propiedad Flags, que liste las fuentes de pantalla _
  con efecto, y que verifique que la fuente exista
CommonDialog1.Flags = cdlCFScreenFonts Or cdlCFEffects Or cdlCFForceFontExist

'Abre el diálogo
CommonDialog1.ShowFont

 

 


9 - Abrir el CommonDialog con una fuente y estilo especificado

 

Para hacer esto, hay que establecer las propiedades del cuadro de diálogo antes de llamar al método ShowFont.

El siguiente Ejemplo lo despliega con la fuente Verdana, tamaño 16, Subrayada y color Azul

 

    With CommonDialog1
    
         .FontName = "Verdana"
         .FontUnderline = True
         .Color = vbBlue
         .FontSize = 16
         .Flags = cdlCFScreenFonts Or cdlCFEffects
         
         .ShowFont
         
    End With 

 


 

Nota: también se puede utilizar el diálogo de windows de Fuente sin utilizar el CommonDialog control de Visual basic, para ello hay que utilizar el Api CHOOSEFONT . En este enlace hay un ejemplo: Cuadro de diálogo fuente

 

 


Buscar en Recursos vb