[Ayuda] Se Puede Saber desde que Form Se Llamó a la Función De un Modulo?

Iniciado por agus0, 8 Diciembre 2010, 06:07 AM

0 Miembros y 1 Visitante están viendo este tema.

agus0

Hola Foro Buenas noches xD

Mi duda es esta seria interesante saber si se puede "Saber" desde que Form Se llama a la función de un Modulo, Seria para ahorrarse el simple paso de pasar la Variable fFrm as Form en una función

La cosa seria asi


en un modulo yo necesito el hWnd del Form a la que llamo la función entonces por lo general lo que se hace es


Public Function Funcion(fFrm as Form) as Integer
Dim C as Integer   
     C = fFrm.hWnd


y asi llevamos el hWnd del Form Al Modulo

Bueno no hay una manera de Pasar el hWnd de la función al Modulo sin hacerlo Por las Variables de La función

BlackZeroX

.
Un handle es de 4 bytes en vb6, por lo tanto debes usar long en lugar de integer, ahora en lugar de pasar como parametro una variable objeto tipo form por que no mejor pasas un long, que sea el hWnd o mejor aun una varaible publica donde almacenes el handle deseado.

Por mi parte usaria en este tipo de casos un modulo de clase por su uso de propiedades seria lo ideal, asi solo estableserias una sola vez el handle y ya todos los procesos y funciones trabajarian en base a este, esto esa lo bueno, lo malo seria la parte de la memoria, ya que al ser clases se cargaria una copia de TODA funcion existentente en ella, mientras que en un modulo normal solo se duplicaria dicha funcion, aun que este efecto seria lo mismo en el modulo de clase si se llama mas veces...

* En pocas palabras no creo que se pueda, y si se puede lo ignoro, pero seria mucho mejor con una variable en un modulo o una propiedad en un modulo de clase, igual hay mas criterios y opiniones...

Dulces Lunas!¡.
The Dark Shadow is my passion.

Psyke1

Eso pensé yo Black! ;)
Con una clase te ahorras ingresar el hWnd varias veces, pero yo solo lo veo rentable si hay varias funciones que lo van a utilizar. :rolleyes:
Si no haría algo parecido a como haces agus0 :
Código (vb) [Seleccionar]
Public Function Funcion(ByVal lHandle As Long) as Long

Así evitamos esto :
Código (vb) [Seleccionar]

Dim C as Integer 'As Long   
    C = fFrm.hWnd


Y lo llamaríamos así :
Código (vb) [Seleccionar]

Debug.Print Funcion(Me.hWnd)


DoEvents! :P

cobein

   Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Mirando el stack, se puede encontrar la direccion de retorno y "posiblemnete" ver desde donde se llamo pero no estoy seguro, en el caso de que se pueda, desde y ate digo que no tiene sentido en lo mas minimo devido al trabajo que involucraria comparado con simplemente pasar un paramtro.

Como decia BlackZeroX, yo usaria una variable para almacenar el handle o de ser necesario un objeto para el form y listo, no vale la pena hacer otra cosa.
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

agus0

Gracias a TODOS, Nos es que lo quiera hacer, Imagine que si se podía seria mucho mas difícil, si no nadie Pasaría los Handles a Traves de una variable :P. Solo quería saber si se Puede hacer eso o no....

Con Respecto al Tamaño de la Variable, Tenes Razón Tendría que usar "Long" pero Cree un Ejemplo Rápido a las 2:30 AM y ni me fijé, Podría a ver puesto "Date" :P

Dessa

Solo uma simple acotación para tener en cuenta, obviamente que el Hwmd de un Form cambia ca da vez que este se descarga (unload) o se cierra, digo esto para tener en cuenta al almacenar el o los  Hwnds  (y luego dichos Formularios deban cerrarse o descargarse en algun momento )
 












Adrian Desanti