Shell 22-01-2023, 11:16
Buenos días!.

Decir que intenté subir un proyecto pero no recibí el mensaje de confirmación por mail.
He mirado en la bandeja de entrada, en la bandeja de spam, en la de la lista internacional y no lo veo.

Antes de subir el proyecto quise traducirlo. Por lo menos de español a Ingles-U.S.A
Al principio el proyecto no era traducible y lo hice traducible.

Creé una copia del mismo y allí no aparecían las palabras para traducir. Que mínimo que los textos de los botones.
Luego fui ademas al código fuente y toda cadena que veía la encerraba entre paréntesis.
Aquello no iba y tuvo más de un error para cerrarse.

Al final creé un proyecto nuevo y fui importando el anterior proyecto y entonces funcionó.
Para remate si que me funcionó la traducción con el proyecto original, con la copia no.

Ahora veo un problema. ¿ Cómo sé que el usuario que no es español y es de habla inglesa va ver bien los textos de los botones ?.
Creo que me tendría que crear un usuario en inglés en el sistema. Aunque creo que vi en su día como lo hacíais para Gambas
o desde este (un poco enrevesado). Al final resulta mejor tener un usuario en inglés. El problema es...y si traduces el proyecto para bastantes idiomas.
Aquí la opción de tener un usuario por idioma en el sistema no es adecuado. Confused

Buscaré por el foro a ver que efecto hace.

Saludos
Shell 21-01-2023, 12:08
Buenas!.

Tengo ese error con un ejemplo sencillo y no sé el motivo.

Pizarra es un control DrawingArea que existe en el formulario.

Código:
Private untest As Test

Public Sub Form_Open()

  untest = New Test(Pizarra)

End

Y la clase Test.

Código:
Property areadibujo As DrawingArea Use hareadibujo
Private suobservador As New Observer

Public Sub _new(darea As DrawingArea)

  Me.areadibujo = darea
  suobservador = New Observer(Me.areadibujo) As "Vigilante"

End


Public Sub Vigilante_Draw()

  DibujarCuadrado()

End

Public Sub DibujarCuadrado()

  Paint.Background = Color.White
  Paint.Rectangle(128, 128, 40, 40)
  Paint.Fill

End

Cuando elimino el observador ademas de no hacer nada el ejemplo, deja de dar el error.
La clase Test quedaría así, no haría nada.

Código:
Property areadibujo As DrawingArea Use hareadibujo
'Private suobservador As New Observer

Public Sub _new(darea As DrawingArea)

  Me.areadibujo = darea
  'suobservador = New Observer(Me.areadibujo) As "Vigilante"

End


' Public Sub Vigilante_Draw()
'
'   DibujarCuadrado()
'
' End

Public Sub DibujarCuadrado()

  Paint.Background = Color.White
  Paint.Rectangle(128, 128, 40, 40)
  Paint.Fill

End

Entiendo lo que dice, con falta de argumentos, pero es que son los que son. Uno. Confused

Saludos
Archivos adjuntos
.gz
TestDrawingObjeto-0.0.1.tar.gz (Tamaño: 11.79 KB Descargas: 0)
Shell 20-01-2023, 20:10
Buenas!.

Código:

Código:
Const PTATOEURO As Float = 166.386

Public Sub Form_Open()

  Me.Title = "Conversor de ptas a euros"

End

Public Sub vlbPesetas_KeyPress()

  If Key.code = Key.enter Or Key.code = Key.Return Then
    'Si se ha pulsado la tecla enter o la tecla return
    If vlbPesetas.Value > 0 Then
      'Si el valor es mayor que cero realizar la conversión
      lblEuros.Text = Str(Round(vlbPesetas.Value / PTATOEURO, -2)) & " €"
    Else
      'En caso contrario poner el valor a cero
      vlbPesetas.Value = 0
    Endif
  Endif

End

Os muestro el problema. Cuando escribo una cantidad en el valuebox por primera vez.

[Imagen: LD20xZ3.png]

Pero si quiero realizar otra operación e intento escribir en el valuebox...
Por ejemplo cuanto son 60 pesetas en euros, ocurre esto con el código de arriba.

[Imagen: KMJWl4A.png]

Entonces tuve que usar los dos eventos. Keypress y KeyRelease.

Código:
Const PTATOEURO As Float = 166.386

Private conversion As Boolean

Public Sub Form_Open()

  Me.Title = "Conversor de ptas a euros"

End

Public Sub vlbPesetas_KeyRelease()

  If Key.code = Key.enter Or Key.code = Key.Return Then
    'Si se ha levantado la tecla enter o la tecla return
    If vlbPesetas.Value > 0 Then
      'Si el valor es mayor que cero realizar la conversión
      lblEuros.Text = Str(Round(vlbPesetas.Value / PTATOEURO, -2)) & " €"
      'Se ha realizado la conversión
      conversion = True
    Else
      vlbPesetas.Value = 0
    Endif
  Endif

End

Public Sub vlbPesetas_KeyPress()

  'Al volver a pulsar una tecla
  'Se comprueba si se ha realizado la conversión
  If conversion Then
    'Ponemos el valor del valuebox a cero
    vlbPesetas.Value = 0
    'La conversión aun no se ha realizado
    conversion = False
  Endif

End

De este problema salió el ejemplo del TextBox. En parte es casi el mismo problema.
En el caso del valuebox no me interesaba que se borrase la cantidad en euros al pulsar la tecla Return o Enter,
quería que se mostrase y quedase ahí para luego al volver a escribir una nueva cantidad, pulsando una tecla
se borrase la cantidad anterior y pudiera escribir la nueva. Y así continuamente.

¿ Es posible hacerlo de otra forma ?. ¿ Es la forma correcta usando los dos eventos ?.

Añadí hasta un Timer, para que pasado un tiempo se borrase la cantidad. Pero no fue necesario.

En parte lo curioso del código es que parece invertido. Keypress no comprueba la tecla pulsada.
Y en este caso es después de haberla pulsado, con KeyRelease.


Saludos
Archivos adjuntos
.gz
ConvertirPesetasAEurosGrafico-0.0.1.tar.gz (Tamaño: 12.18 KB Descargas: 2)
Páginas (564):    1 226 227 228 229 230 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 292
Último miembro: Nicls_key
Temas del foro: 1,742
Mensajes del foro: 9,026
Últimos temas
Odio a gb.Report
Foro: General
Último mensaje por: guizans, Hace 6 horas
Respuestas: 9 - Vistas: 1,506
Ordenar en un TableView
Foro: General
Último mensaje por: guizans, Ayer, 19:35
Respuestas: 0 - Vistas: 31
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,315
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 101
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.