¿Cómo puedo obtener el nombre del formulario el cual llama a una función?

Necesito saber como obtener el nombre del formulario, el cual llama a una función.-
ES DECIR... Cuando en un formulario determinado se llama a una función pública contenida en un módulo (. Vas)
Ésta (función) deberá saber de donde se hizo la llamada o sea de que formulario se llamo a la función.-

4 Respuestas

Respuesta
1
El la funcios vos tomarías el nombre de el formulario como variable, y al llamar a esa función lo haces enviando la palabra clave ME,
al llamara a una función lo harías así:
call ColorFormulario ME
y la funcion te leeria el nombre del formulario:
Sub ColorFormulario (Formulario As Form)
Formulario.BackColor = Qbcolor(15)
End Sub
Cualquier duda estoy a tu disposición.
Ok... esta bien...
Pero, lo que necesito es saber si se puede hacer sin agregar parámetros en la función...
Ejemplo:
Private sub formulariox()
call evaluar()
end sub
Public function evaluar()
var_form = nombre_formulario
end function
¿Se puede?
Ricardo
Lo más fácil es pasar el parámetro a la función, en tu caso seria por ejemplo:
Private sub formulariox(Formulario as String)
call evaluar(Formulario)
end sub
Pero si no quieres pasa parámetros tienes que crear una variable global en el modulo y antes de hacer la llamada a la función pones:
nombre_formulario=me
o
nobre_formulario = nombre del formulario
Pero te aconsejo lo de enviar parámetros, es más fácil y más seguro.
Respuesta
1
La función del Módulo debería recibir un parámetro bien de tipo String o bien de Tipo Form de la siguiente manera:
Public sub MiFuncion(strNombreForm as string) o bien
Public sub MiFuncion(Frm as Form)
Para saber desde que form has llamado a la función deberás hacer lo siguiente para el primero de los casos:
select case strNombreForm
case "NombreFormulario"
...
end select
Y para el segundo :
select case Frm.Name
case "NombreFormulario"
...
end select
Yo suelo utilizar la segunda de las opciones porque de esa manera puedo llamar a cualquier función pública definida dentro del Form.
Ok.. esta bien...
Pero lo necesito sin utilizar parámetros
Es decir; sin agregar en la llamada de la función el nombre del formulario.-
Y en la función obtener el nombre del formulario, ¿sin enviar parámetros
SE PUEDE?
Ricardo
Puedes declarar una Variable públic en el módulo de tipo string o Form igualmente y inicializarla justo antes de la llamada a la función.
El tratamiento dentro de la función sería el mismo. ¿Ok?
Respuesta
1
Pues haber si no entendí mal la pregunta, solo deberías añadir a la función publica un parámetro más que almacene el formulario. En el momento de hacer la llamada, le envías como parámetro (además de los que tiene, si es el caso) el formulario mediante el objeto ME, que hace referencia al formulario activo.
Ok... esta bien...
Pero, lo que necesito es saber si se puede hacer sin agregar el parámetro en la función...
¿Se puede?
Ricardo
Pues mira, yo la única forma que conozco es la que te comentaba. Si eso preguntale a alguien si existe alguna función de la API que haga eso. Yo personalmente no la conozco.
Respuesta
1
Lo único que puedes hacer es agregar a la función un parámetro (texto o numero) para identificar quien la convoca...
Ej.
La función en el modulo:
Private MiFuncion (xVar as string)
...
...
if xVar = "Form1" then
'lo que sea
Else If xVar = "Form2" then
' lo que sea
End If
....
End Function
En la llamada a la función:
MiFuncion (Me. Name)
El Me hace referencia al formulario actual, si estas en Form1, Me es ese form.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas