Turriano   26-04-2025, 23:07
#1
Tras correr un programa (por ejemplo, un "hola mundo" o el resultado de unas operaciones), desearía que el resultado saliese en el mismo formulario y no en la consola.
¿Cómo lo hago?
Saludos y gracias  Shy
Última modificación: 26-04-2025, 23:08 por Turriano.
Shell   Ayer, 11:01
#2
En Visual Basic existía la posibilidad de mostrar directamente un texto en el propio formulario,
como se hace con la consola, con la particularidad que le podías decir el lugar donde imprimirlo,
para ello se usaba la propiedad me.currentx y me.currenty y luego me.print lo que quisieras imprimir.
Eso debíamos hacerlo en el evento Activate del formulario.

Pero eso no se puede hacer en Gambas. Ademas queda hasta mal.

Al igual que Visual Basic, Gambas es un lenguaje orientando a eventos.
Esto no es el basic de los 80. que era secuencial. Esto es un lenguaje interactivo.  Smile

Lo que antes era mostrar algo en una pantalla, ahora usamos controles dedicados a algo concreto sobre 
un formulario principal. Debería decir ventana, la madre del formulario.

Usa una etiqueta si es solo para mostrar un texto. Y para ello usa el editor.
Esto es otra forma de hacerlo desde código.

Código:
Private mietiqueta As Label

Public Sub Form_Open()

  'Vamos a centrar nuestro texto en el formulario mediante un control Label
  'Se va a crear un control etiqueta mediante código. Esto puedes hacerlo desde el editor y no desde código

  Dim texto As String = "Esto es Gambas!"
  Dim anchotexto As Integer
  Dim altotexto As Integer
  Dim fuentedelentra As Font

  'Definimos la fuente de letra que vamos a usar. Podemos tambien usar la de por defecto
  fuentedelentra = New Font
  With fuentedelentra
    .Name = "Monospace"
    .Size = 18
    .Bold = False
  End With

  mietiqueta = New Label(Me) 'La etiqueta pertenece al formulario, se instancia en el
  mietiqueta.Font = fuentedelentra 'Esto lo hacemos antes por que lo necesitamos para calcular el ancho del texto

  anchotexto = mietiqueta.Font.TextWidth(texto) 'Averiguamos el ancho del texto usando que corresponde usando la fuente de la etiqueta
  altotexto = mietiqueta.Font.TextHeight(texto) 'Averiguamos el alto del texto usando que corresponde usando la fuente de la etiqueta

  With mietiqueta
    .X = (Me.W - anchotexto) / 2 'Centramos la etiqueta en el formulario .Eje x
    .Y = (Me.H - altotexto) / 2 'Centramos la etiqueta en el formulairo. Eje y
    .W = anchotexto 'Asignamos al ancho del control, el ancho del texto
    .H = altotexto 'Asignamos al alto del control, el alto del texto
    .Text = texto 'Asignamos nuestro texto al texto que se mostrará en la etiqueta
  End With

End

Saludos
Última modificación: Ayer, 11:01 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Turriano   Ayer, 11:23
#3
Gracias por contestar.
Más que en el formulario mismo, yo pensaba en una etiqueta de texto que se pudiese modificar mediante el programa.
Por ejemplo, el resultado de dos mas dos, que modificase es teto y pusiese cuatro.
Algo sencillo
Última modificación: Ayer, 11:27 por Turriano.
cogier   Hace 11 horas
#4
Eche un vistazo al programa adjunto.
Archivos adjuntos
.gz
Test-0.1.tar.gz (Tamaño: 13.37 KB Descargas: 0)
Shell   Hace 11 horas
#5
(Ayer, 11:23)Turriano escribió: Más que en el formulario mismo, yo pensaba en una etiqueta de texto que se pudiese modificar mediante el programa.

Ya me extrañaba.
Eso puedes hacerlo de la forma más sencilla a algo más complicado.
Quieres sumar dos números:

Etiqueta para mostrar: "Sumando1". Al lado de esta puedes usar un valuebox 1para entrar el valor.
Etiqueta para mostrar: "Sumando2". Al lado de esta puedes usar un valuebox2 para entrar el valor.
Y aquí ya depende de lo que quieras hacer. Si lo quieres mostrar en un etiqueta u otro valuebox.
Etiqueta para mostrar: "Resultado" y al lado de esta usar otra etiqueta u otro valuebox (que solo se pueda leer)

Las operaciones se pueden hacer automáticamente cada vez que cambia el contenido de los valuebox que contiene los números
ó mediante la pulsación de un botón, al entrar un valor. Y eso sumara las propiedades "value" de los dos valueboxes.

En el fondo todo es lo mismo. Sumar dos números.
Como quieras representarlo es usando los controles adecuados y que más te gusten.

Al principio no pienses en que controles tienes que usar:
- Imagina el formulario con una serie de cajas situadas en alguna parte de este.
- Luego esas cajas tienen unas propiedades, métodos, eventos que hacen algo. Si no te convence esa caja, cámbiala por otra.
- Ahora ya sabes lo que hace cada una de esas cajas
- Usa el código adecuado en los eventos de esas cajas. 
Cuando haces clic en el botón, sumará dos cantidades que mostrará en la etiqueta correspondiente.
Entonces sabes que tienes que programar el evento clic del botón.

Lo más difícil averiguar que hace cada caja y sus propiedades. Así que no te compliques, que quieres usar una
caja de texto al principio para entrar los valores. Úsalo. Que con el tiempo averiguas que existe un control
dedicado a valores, sustituye la caja de texto por este.

Y así.

Hasta el infinito y más allá. Smile

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-2025 MyBB Group.
Made with by Curves UI.