Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Parámetro opcional en el constructor.
#1

Hola.

 Como indica el título, he creado un constructor de una nueva ventana que he creado,  recibe dos parámetros obligatorios y uno opcional.

GAMBAS
  1. Public Sub _new($nombre as String, $respuestas as Integer, Optional $modo as Boolean  = False)



Hasta aquí todo normal. Pero el problema viene cuando desde un evento del formulario principal hago esto:
GAMBAS
  1. Dim nuevaVentana as VentanaPregunta
  2.  
  3. nuevaVentana = New VentanaPregunta("hola", 30, True)



Esto me da error, ya que el tercer parámetro, que también es opcional me sale que es de tipo Control, y es algo que no acabo de entender. También he probado a poner dos comas seguidas, pero no funciona. Algo estoy haciendo mal, pero no se el que.
[Imagen: Kd76Hos.png]
Muchas gracias.

Edito: La solución es pasar en los parámetros el nombre de la variable donde se almacena
GAMBAS
  1. nuevaVentana = New VentanaPregunta("hola", 30, nuevaVentana, True)


Lo que no se es el porque de este comportamiento.
    ¡Gracias!
#2

En el constructor siempre está implícito el parámetro del contenedor, que es obligatorio. Si no hay parámetros opcionales, no pasa nada porque el compilador lo añade por su cuenta al final de la lista de parámetros, pero si colocas un parámetro opcional, que debe ir al final, entonces no puede ser colocado automáticamente por lo que debes referenciarlo en el código como el último parámetro de los obligatorios. Esa es la razón.

Saludos

No podemos regresar
[-] Los siguientes 2 usuarios dicen gracias a Shordi por este post:
  • tincho, vuott
    ¡Gracias!
#3

Muchas gracias por la explicación, ahora me queda claro.

Un saludo.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)