Colabora
 

Actualización de la clase ConfigXml del Guille

 

Fecha: 14/Sep/2007 (14/09/2007)
Autor: Antonio R. Fernandez (lsri8088 @ gmail . com)

 


Introducción

Esto es una actualización para la clase ConfigXml del Guille con la que se podrán utilizar valores de tipo Font Y Color. Esta escrita para Visual Basic .Net 2005.

ConfigXml sirve para guarda datos de configuración de tu aplicación en un archivo XML.

 

Nota: Añadir la referencia a System.Drawing

Métodos para leer y escribir valores Font

''' <summary>
''' Asignar un valor de tipo Font en la sección y clave indicadas.
''' </summary>
''' <param name="seccion">La sección de la que queremos obtener el valor</param>
''' <param name="clave">La clave de la que queremos recuperar el valor</param>
''' <param name="valor">El valor a asignar</param>
''' <remarks>
''' El valor se guardar como un elemento de la sección indicada.
''' <seealso cref="SetKeyValue" />
''' </remarks>
Public Sub SetValue(ByVal seccion As String, ByVal clave As String, ByVal valor As Drawing.Font)
    cfgSetValue(seccion, clave, FontToString(valor))
End Sub
'
''' <summary>
''' Asigna un valor de tipo Font en la sección y clave indicadas.
''' </summary>
''' <param name="seccion">La sección de la que queremos obtener el valor</param>
''' <param name="clave">La clave de la que queremos recuperar el valor</param>
''' <param name="valor">El valor a asignar</param>
''' <remarks>
''' El valor se guarda como un atributo de la sección indicada.
''' La clave se guarda con el atributo key y el valor con el atributo value.
''' <seealso cref="SetValue" />
''' </remarks>
Public Sub SetKeyValue(ByVal seccion As String, ByVal clave As String, ByVal valor As Drawing.Font)
    cfgSetKeyValue(seccion, clave, FontToString(valor))
End Sub
'
''' <summary>
''' Obtiene un valor de tipo Font de la sección y clave indicadas.
''' </summary>
''' <param name="seccion">La sección de la que queremos obtener el valor</param>
''' <param name="clave">La clave de la que queremos recuperar el valor</param>
''' <param name="predeterminado">El valor predeterminado para cuando no exista.</param>
''' <returns>Un valor de tipo Font con el valor de la sección y clave indicadas</returns>
''' <remarks></remarks>
Public Function GetValue(ByVal seccion As String, ByVal clave As String, _
                           ByVal predeterminado As Drawing.Font) As Drawing.Font
    Dim arrFont As String() 
    arrFont  = cfgGetValue(seccion, clave, FontToString(predeterminado)).Split(CChar(";"))
    '**** Formato arrFont: 
    '**** (0) :: nombre de la fuente
    '**** (1) :: tamaño
    '**** (2) :: tipo de unidades del tamaño
    '**** (3) :: estilo (ej: bold, italic, underline)
    If arrFont.Length = 1 Then
        Return Nothing
    Else
        Dim objEstilo As Drawing.FontStyle = Drawing.FontStyle.Regular
        arrFont(3) = arrFont(3).Replace(", ", ",")
        For Each strEstilo As String In arrFont(3).Split(CChar(","))
            Select Case strEstilo.ToLower
                Case "bold"
                      objEstilo = CType(objEstilo + Drawing.FontStyle.Bold, Drawing.FontStyle)
                Case "italic"
                      objEstilo = CType(objEstilo + Drawing.FontStyle.Italic, Drawing.FontStyle)
                Case "strikeout"
                      objEstilo = CType(objEstilo + Drawing.FontStyle.Strikeout, Drawing.FontStyle)
                Case "underline"
                      objEstilo = CType(objEstilo + Drawing.FontStyle.Underline, Drawing.FontStyle)
            End Select
        Next
        Dim objUnit As Drawing.GraphicsUnit = Drawing.GraphicsUnit.Point
        Select Case arrFont(2).ToLower
            'VALOR PREDETERMINADO: Case "display" : objUnit = Drawing.GraphicsUnit.Point
            Case "display" : objUnit = Drawing.GraphicsUnit.Display
            Case "display" : objUnit = Drawing.GraphicsUnit.Document
            Case "display" : objUnit = Drawing.GraphicsUnit.Inch
            Case "display" : objUnit = Drawing.GraphicsUnit.Millimeter
            Case "display" : objUnit = Drawing.GraphicsUnit.Pixel
            Case "display" : objUnit = Drawing.GraphicsUnit.World
        End Select
        '
        Return New Drawing.Font(arrFont(0), Convert.ToSingle(arrFont(1)), objEstilo, objUnit)
    End If
End Function
'
''' <summary>
''' Obtiene el nombre, tamaño, unidades y estilo de la fuente.
''' </summary>
''' <param name="fuente">Objeto de tipo Drawing.Font</param>
''' <returns>Un valor de tipo String que con la informacion de la fuente.
''' Si fuente es Nothing devuelve Nothing.ToString
''' </returns>
''' <remarks></remarks>
Private Function FontToString(ByVal fuente As Drawing.Font) As String
    If IsNothing(fuente) Then
        Return Nothing.ToString
    Else
        Dim cad As New Text.StringBuilder
        cad.Append(fuente.Name.ToString)
        cad.Append(";")
        cad.Append(fuente.Size.ToString)
        cad.Append(";")
        cad.Append(fuente.Unit.ToString)
        cad.Append(";")
        cad.Append(fuente.Style.ToString)
        Return cad.ToString
    End If
End Function
'

Métodos para leer y escribir tipos Color

''' <summary>
''' Asignar un valor de tipo Color en la sección y clave indicadas.
''' </summary>
''' <param name="seccion">La sección de la que queremos obtener el valor</param>
''' <param name="clave">La clave de la que queremos recuperar el valor</param>
''' <param name="valor">El valor a asignar</param>
''' <remarks>
''' El valor se guardar como un elemento de la sección indicada.
''' <seealso cref="SetKeyValue" />
''' </remarks>
Public Sub SetValue(ByVal seccion As String, ByVal clave As String, ByVal valor As Drawing.Color)
    cfgSetValue(seccion, clave, valor.ToArgb.ToString)
End Sub
'
''' <summary>
''' Asigna un valor de tipo Color en la sección y clave indicadas.>
''' </summary>
''' <param name="seccion">La sección de la que queremos obtener el valor</param>
''' <param name="clave">La clave de la que queremos recuperar el valor</param>
''' <param name="valor">El valor a asignar</param>
''' <remarks>
''' El valor se guarda como un atributo de la sección indicada.
''' La clave se guarda con el atributo key y el valor con el atributo value.
''' <seealso cref="SetValue" />"
''' </remarks>
Public Sub SetKeyValue(ByVal seccion As String, ByVal clave As String, ByVal valor As Drawing.color)
    cfgSetKeyValue(seccion, clave, valor.ToArgb.ToString)
End Sub
'
'
''' <summary>
''' Obtiene un valor de tipo Color de la sección y clave indicadas.
''' </summary>
''' <param name="seccion">La sección de la que queremos obtener el valor</param>
''' <param name="clave">La clave de la que queremos recuperar el valor</param>
''' <param name="predeterminado">El valor predeterminado para cuando no exista.</param>
''' <returns>Un valor de tipo Color con el valor de la sección y clave indicadas</returns>
''' <remarks></remarks>
Public Function GetValue(ByVal seccion As String, ByVal clave As String, _
                         ByVal predeterminado As Drawing.Color) As Drawing.Color
    Return Drawing.Color.FromArgb( _
             Convert.ToInt32( _
                  cfgGetValue(seccion, clave, predeterminado.ToArgb.ToString)))
End Function

 

Espacios de nombres usados en el código de este artículo:

System.Drawing

 



Ir al índice principal de el Guille