elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ayundeme con este simple codigo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayundeme con este simple codigo  (Leído 1,951 veces)
fraktal

Desconectado Desconectado

Mensajes: 128


Ver Perfil
ayundeme con este simple codigo
« en: 13 Octubre 2006, 09:47 am »

Hola, es es un codigo que trata de hacer lo siguiente:
Cada tres segundos cambia la imagen de fondo del formulario aleatoriamente entre 6 imagenes. Si pasas el raton por encima del formulario, el formulario se mueve por la pantalla para que no puedas cogerlo. Si le pulsas a la X para cerrarlo, abre un nuevo formulario igual. Y todo va bien hasta aqui. Cuando pulso la X si abre un nuevo formulario, pero yo quiero que el nuevo formulario siga con las propiedades del inicial, y en el primero se ven las fotos cambiando, y al pinchar en la X y en las sucesivas vece que se pinchen se abren nuevos formularios, pero en estos formularios no se cargan las fotos. Osea solo el primero funciona bien y aunque luego se abre el formuliario en este no aparecen fotos ni nada.
Este es el codigo, gracias:
Código:
Dim ancho As Integer
Dim alto As Integer
Dim altornd As Integer
Dim anchornd As Integer
Dim ventana() As Form
Dim j As Byte
Private Sub Form_Load()
cambia
alto = Screen.Height
ancho = Screen.Width
altornd = calculo(alto)
anchornd = calculo(ancho)
If altornd > alto - Form1.Height Then
altornd = alto - Form1.Height
End If
If anchornd > ancho - Form1.Width Then
anchornd = ancho - Form1.Width
ElseIf anchornd < Form1.Width Then
anchornd = 0
End If
Form1.Top = altornd
Form1.Left = anchornd
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
alto = Screen.Height
ancho = Screen.Width
altornd = calculo(alto)
anchornd = calculo(ancho)
If altornd > alto - Form1.Height Then
altornd = alto - Form1.Height
End If
If anchornd > ancho - Form1.Width Then
anchornd = ancho - Form1.Width
ElseIf anchornd < Form1.Width Then
anchornd = 0
End If
Form1.Top = altornd
Form1.Left = anchornd
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 0 Then 'Significa que se ha cerrado con la X:
    i = i + 1
ReDim Preserve ventana(1 To i)
Set ventana(i) = New Form1
ventana(i).Show
    Cancel = 1
End If
End Sub
Public Function calculo(valor)
calculo = Int(Rnd * valor)
End Function
Private Sub cambia()
j = Rnd * 6
Select Case j
Case 1
Form1.Picture = Image1.Picture
Case 2
Form1.Picture = Image2.Picture
Case 3
Form1.Picture = Image3.Picture
Case 4
Form1.Picture = Image4.Picture
Case 5
Form1.Picture = Image5.Picture
Case 6
Form1.Picture = Image6.Picture
End Select
End Sub
Private Sub Timer1_Timer()
cambia
End Sub




En línea

songecko

Desconectado Desconectado

Mensajes: 22



Ver Perfil WWW
Re: ayundeme con este simple codigo
« Respuesta #1 en: 13 Octubre 2006, 13:42 pm »

Tenes que colocar esto. Creo q este codigo funciona solo cuando abris el .exe, no cuando compilas en el VB:

Código:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 0 Then 'Significa que se ha cerrado con la X:
Shell App.Path & "\" & App.EXEName & ".exe" 'se ejecuta a si mismo
End If
End Sub

espero que te sirva. Chau

GeCkO


En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: ayundeme con este simple codigo
« Respuesta #2 en: 13 Octubre 2006, 14:20 pm »

la otra forma de hacerlo seria iniciando tu proyecto desde un Sub Main

agrega un modulo y pones:

Public Sub Main()

    Dim x As Form
   
    Set x = New Form1
   
    x.Show

End Sub

y en el form1:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If UnloadMode = 0 Then Main
End Sub
En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
fraktal

Desconectado Desconectado

Mensajes: 128


Ver Perfil
Re: ayundeme con este simple codigo
« Respuesta #3 en: 13 Octubre 2006, 16:35 pm »

hola, gracias a ambos, he probado los dos mentodos, muchas gracias. Al final me he dado cuenta que en la parte que cargo las fotos, con form1.picture = a lo que sea, al ser todas las instancias del mismo nombre, ahi era donde daba parte del problema, de manera que lo hice: me.picture asi se referia al propio formulario en cuestion olvidando el nombre.
Muchas gracias y saludoS!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema en simple codigo
Programación C/C++
elkiy 3 6,892 Último mensaje 26 Marzo 2013, 01:16 am
por avesudra
No funciona este simple codigo
Programación Visual Basic
luis456 6 5,406 Último mensaje 21 Septiembre 2013, 08:50 am
por luis456
Ayuda nuevamente con este simple codigo
Programación C/C++
spiderboot 9 4,008 Último mensaje 13 Mayo 2014, 15:39 pm
por spiderboot
no tiene sentido este simple código. « 1 2 »
Programación C/C++
AprendiendoAProgramar 15 7,897 Último mensaje 28 Enero 2017, 15:03 pm
por do-while
Por que no me funciona este simple codigo?
Programación C/C++
CelDavid 8 3,640 Último mensaje 10 Mayo 2019, 06:06 am
por RayR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines