Visual Basic - Programa LENTOOOOOOO...

Life is soft - evento anual de software empresarial
   
Vista:

Programa LENTOOOOOOO...

Publicado por javi (90 intervenciones) el 06/09/2008 03:23:35
Mi programa se vuelve lento porque cuando sale de un formulario tiene
que cargar otro...... Porque los va cargando uno a uno.....

He probado de cargar todos los formularios en la memoria (solo son 6 formularios)
con un FORM LOAD pero el problema es que me hace un FORM.SHOW por su cuenta....
O sea, me los presenta en pantalla como si fuera un flash.
¿Alguien sabe porque?

Mi primer codigo, que puse al inicio para que todos se cargaran en la memoria
era este..............

load FORM1
load FORM2
load FORM3
load FORM4
load FORM5
load FORM6

Pero no solo se cargaban en la memoria sino que SE VEIAN EN LA PANTALLA como
si fueran un flash (como si hiciera un Form.Show por su cuenta).

Luego probe con este codigo..........

load FORM1
hide.FORM1

load FORM2
hide.FORM2

load FORM3
hide.FORM3

......................
.....................
Y seguia igual........... Se ve un flash de 1 segundo que queda fatal..

Yo siempre habia creido con con LOAD solo se cargaban en la memoria PERO QUE
NO SE VEIAN HASTA QUE NO HACIAS UN FORM.SHOW. Pero a mi no me sale asi.

¿Que forma tengo de cargar los formularios en la memoria sin que se vea nada de nada?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Programa LENTOOOOOOO...

Publicado por alberto (123 intervenciones) el 06/09/2008 09:51:36
En diseño pon la propiedad visible a false
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programa LENTOOOOOOO...

Publicado por javi (90 intervenciones) el 06/09/2008 20:33:03
Hola..... gracias por responder.

Si, ya se me habia ocurrido esta solucion, pero esta solucion tiene un problema
y es QUE SE QUEDA ASI HASTA QUE LA CAMBIAS.....

O sea, cuando haces un FORM.HIDE simplemente haces que no se vea POR
UN MOMENTO pero luego queda "libre"....

PERO si pones la propiedad VISIBLE=FALSE luego a la vez que hago un form
load tendre que ir poniendo la propiedad VISIBLE=TRUE, porque esta no lo
deja "ver" otra vez hasta que no la cambias (no queda "libre")

Si no me queda otra salida lo hare asi...... pero buscaba la forma de cargarlo
en memoria SIN QUE SE VIERA, y creia que la funcion del LOAD era precisamente
esta.

Gracias
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

NO FUNCIONAAAAAAA

Publicado por javi (90 intervenciones) el 06/09/2008 20:53:09
Perdona, lo acabo de probar y no funciona....

He puesto los formularios en VISIBLE=FALSE y no funciona

Hace lo mismo..... me salen en la pantalla.....

En cuanto ve la palabra LOAD me los presenta en pantalla.....

Y no lo entiendo..... Me estoy volviendo loco y no encuentro la solucion...

Incluso he probado de poner UNLOAD.FORM y luego LOAD.FORM
y ni asi..... (en cuanto se huele un LOAD.... zas¡¡¡ a la pantalla)

Si alguien le a pasado eso y me puede ayudar..... gracias.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:NO FUNCIONAAAAAAA

Publicado por igor (633 intervenciones) el 06/09/2008 21:21:29
Hola Javi, ya que estás pidiendo ayuda deberías controlar un poco tu forma de expresarte. Normalmente molestan los GRITOS!!!! y los NO FUNCIONAAAAAAAAA.

Yo te diré que a mí con Visual Basic 6 un load no hace visible a un formulario hasta no recibir la orden form.show, esté o no visible=true.

Teniendo en cuenta eso, a lo mejor deberías explicarnos TÚ que es lo que haces y ya de paso explicar un poco mejor lo que quieres conseguir, porque no se si quieres cargar los formularios al inicio, visualizarlos, o no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:NO FUNCIONAAAAAAA

Publicado por yo (14 intervenciones) el 06/09/2008 21:34:34
la orden form.show???

Qué orden es esa, no será un método?

sabes cual es la diferencia?

estás en el ejército que es donde se dan ordenes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LO ENCONTRE......pero no lo solucione

Publicado por javi (90 intervenciones) el 06/09/2008 21:56:50
Ahora ya se porque no funciona el poner el VISIBLE=FALSE.....

Y tambien sé porque se ven los formularios al hacer un LOAD.........

La explicación es muy sencilla....... porque en el codigo de cada formulario
tiene su propio FORM_LOAD ....... Y DENTRO DE ESTE FORM_LOAD HAY
UN "FORM.SHOW"............

Al tratar de cargar el formulario desde un modulo, para que asi se cargue
en memoria y el programa sea mas rapido....... se va al evento FORM_LOAD
del formulario....... y lo ejecuta..... y dentro de este evento hay un FORM.SHOW
y por eso lo presenta en pantalla de una forma muy rapida (como un instante)
y luego ejecuta el VISIBLE=FALSE y lo quita de la pantalla.

UNICA SOLUCION..... (que se me ocurre) .... quitar los FORM.SHOW de los
eventos FORM_LOAD de cada formulario.......

Pero se me complica mucho el codigo, porque los FORM.SHOW son
necesarios.

Si alguien se le ocurre algo........ please.... una ayudita

Gracias.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:LO ENCONTRE......pero no lo solucione

Publicado por igor (633 intervenciones) el 06/09/2008 22:31:17
Ahora si que has dicho la verdad, el código no es tuyo y no tienes ni idea del código que está programado, y vas investigando poco a poco y pidiendo ayuda para resolver el puzle. Suerte con esa tarea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Para IGOR

Publicado por javi (90 intervenciones) el 07/09/2008 04:09:22
Igor, lo siento pero te equivocas.

El codigo ES TOTAL Y ABSOLUTAMENTE MIO. (TODO MIO)

El programa tiene mas de 50 formularios (no los he contado)
Pero para que te hagas una idea ocupa 14 megas UNA VEZ
COMPILADO. (eso si lo he visto)

Y he tardado cerca de UN AÑO (a tiempo parcial) en terminarlo.

Lo que sucede es que a veces programando te "saltan" cosas que no te
esperas y te quedas en blanco...¡¡¡ "Leñe ¿y ahora porque me hace eso?"¡¡¡¡.
Y no sabes ni por donde salir......... Y lo primero que se te ocurre es
buscar respuestas o preguntar en algun foro.
(Son los clasicos tios que ponen "URGENTE, necesito.........")

Luego cuando te calmas (se te pasa el cabreo) ves las cosas con mas
claridad y ves porque sucede.

A mi ya me ha pasado varias veces, hacer la pregunta en este foro y
luego al cabo de 2 horas o al dia siguiente encontrar la solucion.
¿Que le vamos ha hacer?.... Es la desesperación del momento...
Pero tampoco es grave, porque luego dejo un mensaje respondiendome
a mi mismo y doy la solucion para que todos la lean y aprendan.

Creo que eso forma parte de ser programador ;-)))

PERO EL CODIGO ES MIO..... TE LO GARANTIZO

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para IGOR

Publicado por igor (633 intervenciones) el 07/09/2008 11:51:53
Me alegro de que sea tuyo, el que tiene boca se equivoca y yo te pido perdón. Es que por aquí pasa gente de todas clases.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

YA ESTA...solucionado. Gracias a todos

Publicado por javi (90 intervenciones) el 06/09/2008 22:39:32
Para los que quieran saber como lo he solucionado...

Lo he solucionado poniendo un Flag de tipo BOOLEANO en cada
uno de los FORM.SHOW.

If Primeracarga=False then
FORM.SHOW
End If

Gracias a todos.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar