Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: soru13 en 10 Julio 2006, 22:17 pm



Título: splash de carga
Publicado por: soru13 en 10 Julio 2006, 22:17 pm
hola, aver si me podeis decir como hacer un splash o imagen de carga, es decir, cuando ejecutas el programa, te sale una ventanita que por ejemplo pone, Visual Basic 6, (como en VB en realidad) y empieza a cargar todos los componentes, pues aver como puedo hacer eso


Título: Re: splash de carga
Publicado por: Mad Antrax en 10 Julio 2006, 22:26 pm
La manera mas cutre sería esta...

Ejecutas el Spash.frm primero, y automaticamente ejecutas el Form1.frm pero pones Form1.Visible = False

De esta manera el Form1 se esta ejecutando y cargando sus componentes, pones un Timer de 4 segundos (mas o menos) y al finalizar pones el Form1.Visible = True

Supongo que hay un método mejor, pero para que quieres eso? Que componentes deseas cargar?


Título: Re: splash de carga
Publicado por: Red Mx en 10 Julio 2006, 22:51 pm
De la manera q yo lo ago solo pongo un timer a 1000 en el form cuando pasen los 1000 secarga el segundo form y diras y como es que ya se cargaron bueno en pcs un poco mas lentas este form se queda conjelado hasta que termine de cargar puden pasar mas de los 1000 y quedarse el form pasas erl mause y te aparece el icono del reloj en el puntero del mause.


Título: Re: splash de carga
Publicado por: NekroByte en 11 Julio 2006, 11:02 am
Tan solo es cosa de ponerse a pensar un tantito:

frmMain.frm está con .Visible = False y frmSplash.frm en .Visible = True

frmMain ejecuta el proceso, digamos:

Código:
Sub Main()

   CargarComponentes()
   CrearInterfaz()
   Inicializar_aplicación()
   
   'Ya está todo listo

   DestroyWindow(frmSplash.hWnd)
   frmMain.Visible = True

End Sub

Hilsen.


Título: Re: splash de carga
Publicado por: Mad Antrax en 11 Julio 2006, 15:19 pm
exacto, a eso me referia :)


Título: Re: splash de carga
Publicado por: soru13 en 11 Julio 2006, 16:56 pm
ya lo consegui, os explico

2 forms, 1 para el splash

en el del splash ponemos 1 timer  y interval esta bien en 5000
Código:
    Unload Me
    Form1.Show

luego en las propiedades de form1 se pone visible en false

y en form1 en Private Sub Form_Load()  se pone en

Código:
Splash.Show

y ya esta, para personalizar el splash para que no tenga bordes podemos hacer

para que salga centrado (en las propiedades del form)

Código:
StartUpposition    2-CenterScreen

Código:
Border Style    1-Fixed Style


Título: Re: splash de carga
Publicado por: NekroByte en 12 Julio 2006, 06:59 am
Yo soy de la idea de que, para casos como este, un Timer muestra falta de creatividad. Es mi pensamiento sólamente.

Hilsen.


Título: Re: splash de carga
Publicado por: BADBYTE-K en 12 Julio 2006, 08:29 am
Hola

Bueno, esta claro, que lo del timer es "rustico", pero es lo ideal

o acaso son motores de maquinaria los que arrancaras desde tu splash en visual basic? tambien hay que pensar que el splash solo se vera 1 o 2 segundos si el procesamiento no hace operaciones extremadamente complejas. A menos que estes programando un "vbphotoshop" creo que el timer es ideal.

saludos


Título: Re: splash de carga
Publicado por: NekroByte en 12 Julio 2006, 10:38 am
Je, bueno, creo que quedé medio trahumado por una aplicación que estoy haciendo (en lugar de un vbphotoshop es un vbnotepad2.exe,  osea, mi versión personalizada del notepad2.exe) y pues para aprender algo más decidí hacer casi todo con APIs y sin tantos controles ni dependencias por parte deVB, de modo que mi procedimiento main() quedó algo grande y con varias llamadas a procedimientos aún más grandes, y aunque no pasa de los 3 segundos en cargar (si se ejecuta por primera vez) ya me acostumbré a las cargas rápidas.

De cualquier forma sólo dije que yo no lo haría con un timer porque me parece innecesario.

Hilsener.


Título: Re: splash de carga
Publicado por: Hans el Topo en 12 Julio 2006, 22:33 pm
ave el compilador tiene una opcion para añadir el splash... añades un nuevo formulario.... proyecto/agregar formulario  (el tipo de inicio)

luego en proyecto/propiedades  ,  en objeto inicial pones el nuevo formulario añadido, el splash y el formulario le añades en el click del form que cargue el otro y listo...


Título: Re: splash de carga
Publicado por: LuckyMonkey en 12 Julio 2006, 22:47 pm
Si el spalsh cómo dice en el título es de carga en teoría no habria que usar timers, simplemente al finalizar la carga cargarse el formulario y abrir el principal, para que un timer? para que la memória caché de tu pc no sirva para nada? para acabar con la paciencia del usuario? nosé...