guizans   24-01-2022, 19:33
#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.

Código:
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:
Código:
Dim nuevaVentana as VentanaPregunta

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
Código:
nuevaVentana = New VentanaPregunta("hola", 30, nuevaVentana, True)
Lo que no se es el porque de este comportamiento.
Última modificación: 24-01-2022, 19:54 por guizans.
Shordi   24-01-2022, 20:00
#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
Última modificación: 24-01-2022, 20:00 por Shordi.

No podemos regresar
guizans   24-01-2022, 20:09
#3
Muchas gracias por la explicación, ahora me queda claro.

Un saludo.
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.