Shordi   05-09-2024, 10:38
#1
Con tanto vídeo del Abuelo Cebolleta y anécdotas y demás, tenía un poco olvidado hacer vídeos sobre Gambas. Así que aquí tenéis otro:

Algunas cosas y formas de uso que tal vez no conocías de la Clase Settings.


No podemos regresar
Shell   11-09-2024, 20:08
#2
Buenas!

Para no mezclar los dos temas en el que en uno explicas los settings y en el otro como aprovecharlos
para almacenar un archivo imagen.

A modo de mejora, se puede mejorar el método de llenado del área de texto.
Aunque puede resultar más confuso, elimina líneas de código.

Código:
Public Sub LlenarAreaDeTexto()

  With TextArea1
    'En el campo font es necesario que sea texto
    .Font = Font[Settings["fontProject", Application.Font.ToString()]]
    .Background = Settings["clbBackGround", Color.TextBackground]
    .Foreground = Settings["clbForeGround", Color.TextForeground]
  End With
  $Prefs = Settings["Preferences", $Prefs]

  ' If Not $Prefs["Texto"] Then
  '   TextArea1.Text = "Texto por defecto"
  '   txtboxTitulo.Text = "Título por defecto"
  ' Else
  '   txtboxTitulo.Text = $Prefs["Titulo"]
  '   TextArea1.Text = $Prefs["Texto"]
  ' Endif
  'Código equivalente:
  TextArea1.Text = IIf(Not $Prefs["Texto"], "Texto por defecto", $Prefs["Texto"])
  txtboxTitulo.Text = IIf(Not $Prefs["Titulo"], "Título por defecto", $Prefs["Titulo"])

End

¿ Eliminaste el Settings.Write en el evento Close del formulario por algún motivo ?
( Es como si ese método se usase más para alguna cosas ). Naturalmente no puede faltar el Save.

Código:
Public Sub Form_Close()

  'Settings.Write(Me)

  $Prefs["Texto"] = TextArea1.Text
  $Prefs["Titulo"] = txtboxTitulo.text
  Settings["Preferences"] = $Prefs
  Settings.Save()

End

Como nota de la ayuda de Gambas sobre el método Save.
 
Cita: 
Since Gambas 3.7, only the modified settings are really saved. That allows to share the same settings file between two applications running simultaneously.

Esto lo vimos con la misma aplicación y distinto formulario ( elegir colores, fondo y color del texto, tipos de letras ).

Y esto:
 
Cita: 
Warning.
When you quit the program the settings are automatically saved but if your program is running in the background and your computer is shutdown it will hard exit and not save the settings. so if your program is likely to exit because of a system shutdown and not manually then you should use this function to Save() the settings as they are changed and not leave it for when the program exits normally as it won't exit normally.

Según Google Translator:
 
Cita: 
Advertencia.
Cuando sale del programa, las configuraciones se guardan automáticamente, pero si el programa se está ejecutando en segundo plano y su computadora está apagada, se cerrará automáticamente y no se guardarán las configuraciones. Por lo tanto, si es probable que su programa se cierre debido a un apagado del sistema y no de forma manual, debe usar esta función para guardar las configuraciones a medida que se modifican y no dejarlas para cuando el programa se cierre normalmente, ya que no se cerrará normalmente.

¿ Esta diciendo que se debería guardar las configuraciones  "antes" y no esperar a que el programa se cierre con normalidad ( por si las moscas ) ?

Saludos
Última modificación: 11-09-2024, 20:13 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   12-09-2024, 08:21
#3
Cita:¿ Eliminaste el Settings.Write en el evento Close del formulario por algún motivo ?
Ni idea. Ten en cuenta que los proyectos que adjunto a los vídeos del youtube son "bocetos" echos de correprisa para ejemplo de creyentes e infieles. No les pidas ni pulcritud ni perfección o sacaría un vídeo por mes, si acaso...
Cita:¿ Esta diciendo que se debería guardar las configuraciones  "antes" y no esperar a que el programa se cierre con normalidad ( por si las moscas ) ?
Para prevenir los cuelgues del sistema o los "Crashes" del programa. En un funcionamiento normal no sería necesario. Yo suelo poner el save al cerrar los formularios en su botoncito de Grabar, tal vez no sea necesario del todo, pero mentalmente ayuda mucho para tener claro qué es lo que está grabado y qué es lo que tengo en memoria y qué es lo que se va a grabar.

Saludos

No podemos regresar
Shell   12-09-2024, 11:17
#4
(12-09-2024, 08:21)Shordi escribió: Ni idea. Ten en cuenta que los proyectos que adjunto a los vídeos del youtube son "bocetos" echos de correprisa para ejemplo de creyentes e infieles. No les pidas ni pulcritud ni perfección o sacaría un vídeo por mes, si acaso...

Lógicamente. Y sobre todo cuando lo haces en directo.

El código de las preferencias donde explicabas los settings, aunque parece una cosa sencilla, te tuvo que llevar un buen rato.
Nada más que el diseño del formulario y los controles, contenedores, tiene su cosa. Otra cosa es el dominio que tengas
con estos.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.