Colabora |
Actualización de la clase ConfigXml del Guille
Fecha: 14/Sep/2007 (14/09/2007)
|
IntroducciónEsto 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
|