Buenas!.
Buscando una aplicación que hace uso de una base de datos, encontré un error en como presentaba un formulario al comenzar la aplicación.
Se trata de que al iniciar la aplicación muestre un formulario con una imagen y luego se cierre el formulario dando paso a otro formulario.
Lo extraño fue. Que ese formulario de presentación al mostrar la imagen, el formulario se iba a la esquina superior izquierda y no se centraba.
Ese código estaba en el evento Open. Puede que del cambio de QT4 a QT5 haya influido. La hice en el 2016.
Os muestro un ejemplo parecido al del formulario.
Código:
Private cuentasegundos As Integer
Public Sub Form_Open()
Randomize
With Timer1
.Delay = 1000
.Start()
End With
'Código que se quiera añadir. Como es el del evento activate para probar efecto
End
Public Sub Timer1_Timer()
If cuentasegundos = 2 Then
Timer1.Stop
Me.Close
Else
cuentasegundos += 1
Endif
End
Public Sub Form_Activate()
Dim ppicture As New Picture
Dim nomimagenes As String[]
Dim ruta As String
'Sin la creación de un paquete de instalación, temporalmente uso el directorio de la aplicación para las imágenes
ruta = Application.Path &/ "Imagenes/"
nomimagenes = Dir(ruta, "*.png")
ppicture = Picture.Load(ruta & nomimagenes[Rand(nomimagenes.Max)])
With PictureBox1
.Picture = ppicture
.Expand = True
End With
With Me
.Center()
.Arrangement = Arrange.Fill
.W = ppicture.W
.H = ppicture.H
End With
End
Como veis el Timer se dispara en el evento Load, en realidad antes se ejecuta el evento actviate y luego va al código del timer.
Podría hacer que el código de mostrar la imagen fuese en el load, pero entonces no estaría centrado el formulario.
Espero no repetirme, ya que puede parecer común.
Saludos