Shell 09-07-2023, 13:38
Buenas!.

Quizás no escribí bien las palabras, como son palabras que pueden venir del Inglés.

Estoy repasando en un capitulo de un libro de Python, la creación y lectura de archivos de texto.
En este capitulo hace un ejemplo breve del uso de JSON, pero muy breve.

Dice:
 
Cita: 
JSON son las siglas de JavaScript Object Notation y es una forma común de sistemas para serializar y deserializar datos para su almacenamiento o transmisión a través de una red. El formato de un objeto JSON es muy similar a la forma en que un diccionario de Python se ve. De hecho, son casi idénticos.

Cuando se dice diccionarios en Python tenemos nuestro igual en Gambas, las colecciones.

Por ejemplo esto es una tabla de puntuación formateada como una cadena JSON.
 
Cita:{"Anna": 10000, "Barney": 9000, "Jane": 8000, "Fred": 7000}

( Es idéntico a un diccionario Python )

¿ Tenemos en Gambas un componente para JSON ?. 
Fui a mirar y no parece que tengamos alguno. Huh

Probablemente alguien crearía algo similar según necesidad.
Aun no sé si le dará uso más tarde el autor del libro.

Ah si, que se me olvida. Según dice:

"Serializar" es el proceso de escribir datos de la memoria a un archivo.
"Deserializar" es el proceso de leer datos de un archivo y pasarlo a la memoria.

Saludos
Shell 07-07-2023, 23:35
Buenas!.

Les subo un ejemplo bien breve. Seguro que a "más" de uno le gusta. Tongue

[Imagen: 39GTFPr.png]

La transformación!!. Big Grin

Por cierto, ¿ transparencia, opacidad o translucidez ?. Traslucida, vamos.
Es que no iba a poner una foto de una chica algo ligera de ropa, ejem.

Código fuente.

Código:
Private gambas As New Image
Private python As New Image

Public Sub Form_Open()

  gambas = Image.Load("Gambas3.png")  
  python = Image.Load("python3.png")
 
End

Public Sub DrawingArea1_Draw()

  Paint.DrawImage(gambas, 0, 0, gambas.W, gambas.H, Slider1.Value / 100)
  Paint.DrawImage(python, 0, 0, python.W, python.H, 1 - Slider1.Value / 100)
 
End

Public Sub Slider1_Change()
 
  DrawingArea1.Refresh

End

El control slider se encarga de la opacidad.
Cita: 
Opacity : the opacity used for drawing the image, between 0.0 (fully transparent, nothing is drawn) and 1.0 (fully opaque). By default, the image is drawn fully opaque.

Saludos
Archivos adjuntos
.gz
Opacidad-0.0.1.tar.gz (Tamaño: 57.81 KB Descargas: 1)
Shell 07-07-2023, 14:44
Buenas!.

Pues este es el ejemplo que quería mostraros el efecto que hace la letra, cuando se añade más velocidad o menos velocidad, su scroll horizontal.

[Imagen: vvgL5i7.png]

Para cambiar la dirección del texto se tiene que cambiar en este lugar:
El primer indice es el que debe modificar, la x, la y no. Wink
Indice 0.

Código:
'Índice de velocidad negativo. El texto se desplaza a la izquierda
'Índice de velocidad positivo. El texto se desplaza a la derecha
Private velocidad As Integer[] = [3, 0]

Fuente:
Código:
Const TEXTO As String = "GAMBAS BASIC"
Const TAMAFUENTE As Integer = 36

Private posicion As Integer[] = [0, 0]
'Índice de velocidad negativo. El texto se desplaza a la izquierda
'Índice de velocidad positivo. El texto se desplaza a la derecha
Private velocidad As Integer[] = [3, 0]

Private fuente As New Font
Private lineacentralactiva As Boolean = False 'Activamos/Desactivamos linea horizontal que divide DrawingArea

Public Sub Form_Open()

  Dim ancho As Integer
  Dim alto As Integer

  With Me
    .Title = "MARQUESINA"
    .Background = Color.Black
    .Center()
  End With  
  Pizarra.Background = Color.Black
 
  fuente.Name = "Monospace"
  fuente.Size = TAMAFUENTE
  ancho = fuente.TextWidth(TEXTO)
  alto = fuente.TextHeight(TEXTO)

  posicion[1] = (Pizarra.H - alto) / 2

  Timer1.Delay = 16
  Timer1.Start

End

Public Sub DibujarTextoCentrado()

  Dim RS As RectF

  If lineacentralactiva Then
    Paint.LineWidth = 1
    Paint.MoveTo(0, Pizarra.H / 2)
    Paint.LineTo(Pizarra.W, Pizarra.H / 2)
    Paint.Stroke
  Endif

  Paint.Translate(posicion[0], posicion[1])
  Paint.Font = Font[fuente.Name & "," & Str(fuente.Size)]
  Paint.Background = Color.White
  Paint.AntiAlias = True
  RS = Paint.TextSize(TEXTO)
  Paint.Text(TEXTO, RS.X, RS.Y, RS.Width, RS.Height)

  posicion[0] += velocidad[0]
  posicion[1] += velocidad[1]

  If velocidad[0] < 0 Then
    'El texto reaaparecerá por la derecha del DrawingArea
    If posicion[0] + RS.W < 0 Then
      'Restamos al ancho del DrawingArea el ancho de una letra
      posicion[0] = Pizarra.W - Paint.TextSize("G").W
    Endif
  Else If velocidad[0] > 0 Then
    'El texto reaaparecerá por la izquierda del DrawingArea
    If posicion[0] + Paint.TextSize("G").W > Pizarra.W Then
      'Restamos al ancho de una letra el ancho total del texto
      posicion[0] = Paint.TextSize("G").W - RS.W
    Endif

  Endif

  Paint.Fill

End

Public Sub Pizarra_Draw()

  DibujarTextoCentrado

End

Public Sub Timer1_Timer()

  Pizarra.Refresh

End

He usado Paint.Antialias pero no sé si realmente hace algo.
Tendría que ver si el sitio donde lo he situado es el adecuado.

Hay momentos que la letra parece "desgarrarse". ( Diente de sierra )
Probar a cambiar la velocidad, a hacerla negativa, etc.

Os subo el ejemplo.

Supongo que son limitaciones.

Saludos
Archivos adjuntos
.gz
Marquesina-0.0.1.tar.gz (Tamaño: 12.7 KB Descargas: 2)
Páginas (564):    1 154 155 156 157 158 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 292
Último miembro: DarkWolf
Temas del foro: 1,742
Mensajes del foro: 9,031
Últimos temas
Ordenar en un TableView
Foro: General
Último mensaje por: guizans, 05-11-2025, 23:26
Respuestas: 5 - Vistas: 139
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 02-11-2025, 13:36
Respuestas: 9 - Vistas: 1,578
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,342
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 118
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.