Comunidad Gambas-es
TextEditor. Formateado. Estilos - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: TextEditor. Formateado. Estilos (/thread-1843.html)



TextEditor. Formateado. Estilos - Shell - 21-01-2025

Buenas!.

Tengo un problema con el formateado que me muestra el control TextEditor.
- Creo una serie de propiedades para el TextEditor. Entre ellas cargo un tema personalizado.
- Abro un archivo de código Gambas.
- Lo muestro en el TextEditor. Pero no se muestra como el tema personalizado.

Código:
Public Sub Form_Open()

  With TextEditor1
    .PopupMenu = "MenuPopUp"
    .Highlight = "gambas"
    .ReadOnly = True
    .ShowLineNumber = True
    .ShowPosition = True
    .ShowExpand = True
    .Font = Font["Monospace,null,10"]
    .Theme.Load(Application.Path &/ "shell.oscuro.gambas.theme") 'Carga un tema de un archivo pero no cambia el tema en el editor
    .Theme["Background"].color = Int(&h1f1f1f) 'Se cambia el fondo de TextEditor usando constante. Al igual que un setting
  End With

  Me.Text = "Mostrando código fuente de " & TextEditor1.Highlight & " en el editor"

End

Usando la constante "BackGround" que esto es clavado a un setting o colección esta propiedad si afecta y se muestra en el editor.
En cambio las del tema cargado, no.

¿ Cuál es el motivo por el qué no se muestra el texto con el tema personalizado ?

No estoy usando gb.settings. De hecho el componente no se usa al utilizar gb.form.editor.

[Imagen: amajIADl.png]

Cuando digo el uso de gb.setting, me refiero que es algo que vamos dando una serie de propiedades "y" cuando volvemos
a ejecutar el proyecto "es" cuando se puede visualizar con esas propiedades, antes no.

El componente TextEditor posee entre sus propiedades:

TextEditor.Theme.Settings

Su tipo es una cadena.

Y de la propiedad Theme, tiene dos métodos que son tanto para leer como para grabar el tema.
Pero activarlo, no es algo  que parece que tenga.

¿ Cómo puedo leer todas las constantes o settings del archivo cargado y activarlo ?. ( Se que está ahí ).
Al igual que he hecho con el fondo del editor. ¿ Me tengo que crear un bucle ?.

[Imagen: 5gYsL6Tl.png]

[Imagen: ffxt6Iyl.png]

Según dice la ayuda de Gambas Styles está obsoleto desde la gambas 3.7 y hay que usar Theme.

Saludos


RE: TextEditor. Formateado. Estilos - Shordi - 21-01-2025

Nunca he usado eso de los themes, sorry.


RE: TextEditor. Formateado. Estilos - Shell - 21-01-2025

(21-01-2025, 14:09)Shordi escribió: Nunca he usado eso de los themes, sorry.

Gracias de todas formas.


RE: TextEditor. Formateado. Estilos - Shell - 16-04-2025

Para poder usar un tema personalizado debemos usar la clase: TextHighlighterTheme

Si mostramos la propiedad .theme de TextEditor vemos:
Código:
Property Theme As TextHighlighterTheme

Y vamos a la clase TextHighlighterTheme
Vemos que esta clase permite: ...an highlighter theme.

Usando de esta su método Load
Código:
Static Function Load ( Path As String ) As TextHighlighterTheme

Que crea un tema desde un archivo.

Así que a la propiedad Theme del TextEditor  le adjudicamos ese TextHighlighterTheme.
En el ejemplo con la clase dialog, buco los archivos .class para mostrarlos en el TextEditor. Pero también podíamos cambiar
el tema de resaltado, en mi caso le adjudico el que suelo usar directamente.

[Imagen: 8cIbbZIl.png]

No sé como se verá en temas de escritorio claro. Pero lo importante es la idea. Smile

Saludos


RE: TextEditor. Formateado. Estilos - Shordi - 16-04-2025

[Imagen: thumbsup.png]


RE: TextEditor. Formateado. Estilos - Shell - 16-04-2025

Lo único que he olvidado que después de cargar el archivo, se debe mostrar arriba en el título que se ha cargado.
Entonces en el evento Click del botón btSource hay que añadir:


Código:
Me.Text = "Mostrando código fuente de " & File.BaseName(ruta) & " en el editor"


Ya decía que no mostraba nada.