Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: agus0 en 8 Diciembre 2010, 06:07 am



Título: [Ayuda] Se Puede Saber desde que Form Se Llamó a la Función De un Modulo?
Publicado por: agus0 en 8 Diciembre 2010, 06:07 am
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

Código:
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


Título: Re: [Ayuda] Se Puede Saber desde que Form Se Llamó a la Función De un Modulo?
Publicado por: BlackZeroX en 8 Diciembre 2010, 06:49 am
.
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!¡.


Título: Re: [Ayuda] Se Puede Saber desde que Form Se Llamó a la Función De un Modulo?
Publicado por: Psyke1 en 8 Diciembre 2010, 11:41 am
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
  1. Public Function Funcion(ByVal lHandle As Long) as Long

Así evitamos esto :
Código
  1. Dim C as Integer 'As Long  
  2.     C = fFrm.hWnd

Y lo llamaríamos así :
Código
  1. Debug.Print Funcion(Me.hWnd)

DoEvents! :P


Título: Re: [Ayuda] Se Puede Saber desde que Form Se Llamó a la Función De un Modulo?
Publicado por: cobein en 8 Diciembre 2010, 11:46 am
   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.


Título: Re: [Ayuda] Se Puede Saber desde que Form Se Llamó a la Función De un Modulo?
Publicado por: agus0 en 8 Diciembre 2010, 12:06 pm
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


Título: Re: [Ayuda] Se Puede Saber desde que Form Se Llamó a la Función De un Modulo?
Publicado por: Dessa en 8 Diciembre 2010, 12:21 pm
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 )
 














Título: Re: [Ayuda] Se Puede Saber desde que Form Se Llamó a la Función De un Modulo?
Publicado por: Hans el Topo en 8 Diciembre 2010, 12:35 pm
tal vez te sirva de ayuda => http://msdn.microsoft.com/es-es/library/dy2xdatz%28VS.80%29.aspx