Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup microsoft.public.es.* 1 Foro > Newsgroup microsoft.public.es.dotnet.vb
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 19-12-2007, 19:26:22
Lord Voldemort
 
Mensajes: n/a
Predeterminado Nombre de la Funcion...

Hola Amig***s....

como puedo saber el nombre de la funcion o sub donde estoy trabajando
por el ejemplo para saber el nombre de mi formulario escribo Me.Name en
cualquier parte..

pero si estoy en una funcion o sub... como sería?

Private Sub Saludar()
Debug.WriteLine("Hola estoy en la funcion " & EstaFuncion)

End Sub


agradesco cualquier comentario..

Jairo


Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #2 (permalink)  
Antiguo 20-12-2007, 02:49:08
Leonardo Azpurua
 
Mensajes: n/a
Predeterminado Re: Nombre de la Funcion...


"Lord Voldemort" <lordvoldemort8***gmail.com> escribió en el mensaje
news:%23DYPHUnQIHA.5980***TK2MSFTNGP04.phx.gbl...
> Hola Amig***s....
>
> como puedo saber el nombre de la funcion o sub donde estoy trabajando
> por el ejemplo para saber el nombre de mi formulario escribo Me.Name en
> cualquier parte..
>
> pero si estoy en una funcion o sub... como sería?
>
> Private Sub Saludar()
> Debug.WriteLine("Hola estoy en la funcion " & EstaFuncion)
>
> End Sub
>
>
> agradesco cualquier comentario..



¿miras unas lineas más arriba?


Responder Con Cita
  #3 (permalink)  
Antiguo 20-12-2007, 08:00:08
Alberto Poblacion
 
Mensajes: n/a
Predeterminado Re: Nombre de la Funcion...

"Lord Voldemort" <lordvoldemort8***gmail.com> wrote in message
news:%23DYPHUnQIHA.5980***TK2MSFTNGP04.phx.gbl...
> como puedo saber el nombre de la funcion o sub donde estoy trabajando
> por el ejemplo para saber el nombre de mi formulario escribo Me.Name en
> cualquier parte..
>
> pero si estoy en una funcion o sub... como sería?
>
> Private Sub Saludar()
> Debug.WriteLine("Hola estoy en la funcion " & EstaFuncion)
>
> End Sub
>


Puedes usar la clase StackTrace para sacar la información del método en
ejecución. GetFrame(0) te da el último StackFrame de la pila de llamadas, y
luego llamas a la función GetMethod del StackFrame, que te dará un
MethodBase. El MethodBase tiene una propiedad "Name" que te da el nombre de
la función.

Dim st As New System.Diagnostics.StackTrace()
nombreMetodo = st.GetFrame(0).GetMethod().Name


Responder Con Cita
  #4 (permalink)  
Antiguo 20-12-2007, 13:38:49
Lord Voldemort
 
Mensajes: n/a
Predeterminado Re: Nombre de la Funcion...

excelente Funciona...

Gracias Alberto..

....

Jairo

"Alberto Poblacion" <earthling-quitaestoparacontestar***poblacion.org>
escribió en el mensaje news:O9p5d5tQIHA.5164***TK2MSFTNGP03.phx.gbl...
> "Lord Voldemort" <lordvoldemort8***gmail.com> wrote in message
> news:%23DYPHUnQIHA.5980***TK2MSFTNGP04.phx.gbl...
>> como puedo saber el nombre de la funcion o sub donde estoy trabajando
>> por el ejemplo para saber el nombre de mi formulario escribo Me.Name en
>> cualquier parte..
>>
>> pero si estoy en una funcion o sub... como sería?
>>
>> Private Sub Saludar()
>> Debug.WriteLine("Hola estoy en la funcion " & EstaFuncion)
>>
>> End Sub
>>

>
> Puedes usar la clase StackTrace para sacar la información del método en
> ejecución. GetFrame(0) te da el último StackFrame de la pila de llamadas,
> y luego llamas a la función GetMethod del StackFrame, que te dará un
> MethodBase. El MethodBase tiene una propiedad "Name" que te da el nombre
> de la función.
>
> Dim st As New System.Diagnostics.StackTrace()
> nombreMetodo = st.GetFrame(0).GetMethod().Name
>
>



Responder Con Cita
  #5 (permalink)  
Antiguo 20-12-2007, 15:04:20
Leonardo Azpurua
 
Mensajes: n/a
Predeterminado Re: Nombre de la Funcion...


"Lord Voldemort" <lordvoldemort8***gmail.com> escribió en el mensaje
news:uX0Qk2wQIHA.2396***TK2MSFTNGP02.phx.gbl...
> excelente Funciona...
>
> Gracias Alberto..


Hola, Jairo:

Aunque mi respuesta puede haber parecido sarcástica, es absolutamente
razonable.

El CLR no mantiene una estructura StackTrace completa según vas llamando a
las funciones: almacena la información mínima necesaria para poder retornar
al punto de llamada una vez la función en ejecución concluye. Cuando se
produce una excepción, o cuando el usuario llama explícitamente a un método
de StackTrace, se construyen las estructuras completas. Y es un proceso
relativamente pesado.

El objeto "Me" existe para permitir la resolución de ambigüedades en el
código de una clase. Si, por ejemplo, tuvieras en una clase o formulario:

Public Nombre As String
Public Sub SetNombre(Nombre As String)
Me.Nombre = Nombre
End Sub,

Me.Nombre se usa para indicar que nos referimos al miembro público "Nombre"
de la instancia, y no al argumento Nombre de la función.

De manera que no tiene sentido que exista algo como Me para las funciones.

Imagino que necesitas poder acceder genéricamente al nombre de la función en
ejecución para una rutina de manejo de excepciones o de trazado del camino
de ejecución.

Si se trata de una rutina de manejo de excepciones, la clase Exception
expone el objeto StackTrace, que te permite acceder a la información
requerida sin necesidad de utilizar referencias a otros objetos o clases. El
método descrito por Albero tambien aplica para el StackTrace de las
excepciones.

Si lo que quieres es trazar la ejecución del código, hay herramientas que lo
hacen excelentemente sin necesidad de que alteres tu código -profilers y
analizadores de cobertura (code coverage): soy un poco rudimentario, de
manera que no uso ninguno y sólo puedo decirte que existen, y creo que VS
incluye un profiler.

Por 40 USD (si no ha subido) puedes comprar las MZ Tools para VS2003 y
posteriores, que son una excelente ayuda para el desarrollo formalizado. El
IDE de VS es más completo que el de VB6, de manera que las MZTools no
resultan tan espectaculares como en VB6, pero pueden servirte para definir
plantillas de código en las que establezcas un procedimiento estándar de
declaración de funciones que incluyan el trazado de ejecución
condicionalmente (en función de la configuracion Debug/Release), por
ejemplo. Esas plantillas te permiten acceder genéricamente al nombre de la
función, pero lo reemplazan por un valor constante en tiempo de desarrollo.
Son mucho más fáciles de defiir que los "snippets" de VS2005, y las tienes
igualmente disponibles.

Salud!


Responder Con Cita
  #6 (permalink)  
Antiguo 20-12-2007, 16:04:25
Lord Voldemort
 
Mensajes: n/a
Predeterminado Re: Nombre de la Funcion...

Hola Leonardo...
en realidad yo quede buscando "arriba..." un correo que dijera algo pero no
encontre na'a...
pense quizas mi outlook no lo bajo dije..

Realmente el mztool para vb6 es grandioso tanto que no podia vivir sin el.
jejeje en la programada...

En realidad no quiero hacer mucho con la funcion.
tan solo eso, cuando exista un error, que diga en que funcion se dio, pero
no quiero estar escribiendo el nombre de la funcion, ya que cuando creo una
nueva funcion realmente no la saco de la nada, sino que la copio de una mas
o menos parecida a lo que ocupo en ese momento, y a veces cuando estoy
ejecutando me dice...error en la funcion Calcular, que no es asi porque el
error fue en la nueva funcion, y pues me ha sucedido mas o menos unas
cuantas veces... y ya me tenia a "pichinga"
probando lo que me dijo alberto. me sale asi..

Se ha producido un error en la función EjecutarComando
Fecha: 20/12/2007 09:58:37 a.m.
---------------------------------------------------------------
Table 'molinita.bancosgg' doesn't exist
************************************************** *************


hasta lueguito...


Jairo







"Leonardo Azpurua" <l e o n a r d o [arroba] m v p s [punto] o r g> escribió
en el mensaje news:%23gdAOrxQIHA.1184***TK2MSFTNGP04.phx.gbl...
>
> "Lord Voldemort" <lordvoldemort8***gmail.com> escribió en el mensaje
> news:uX0Qk2wQIHA.2396***TK2MSFTNGP02.phx.gbl...
>> excelente Funciona...
>>
>> Gracias Alberto..

>
> Hola, Jairo:
>
> Aunque mi respuesta puede haber parecido sarcástica, es absolutamente
> razonable.
>
> El CLR no mantiene una estructura StackTrace completa según vas llamando a
> las funciones: almacena la información mínima necesaria para poder
> retornar al punto de llamada una vez la función en ejecución concluye.
> Cuando se produce una excepción, o cuando el usuario llama explícitamente
> a un método de StackTrace, se construyen las estructuras completas. Y es
> un proceso relativamente pesado.
>
> El objeto "Me" existe para permitir la resolución de ambigüedades en el
> código de una clase. Si, por ejemplo, tuvieras en una clase o formulario:
>
> Public Nombre As String
> Public Sub SetNombre(Nombre As String)
> Me.Nombre = Nombre
> End Sub,
>
> Me.Nombre se usa para indicar que nos referimos al miembro público
> "Nombre" de la instancia, y no al argumento Nombre de la función.
>
> De manera que no tiene sentido que exista algo como Me para las funciones.
>
> Imagino que necesitas poder acceder genéricamente al nombre de la función
> en ejecución para una rutina de manejo de excepciones o de trazado del
> camino de ejecución.
>
> Si se trata de una rutina de manejo de excepciones, la clase Exception
> expone el objeto StackTrace, que te permite acceder a la información
> requerida sin necesidad de utilizar referencias a otros objetos o clases.
> El método descrito por Albero tambien aplica para el StackTrace de las
> excepciones.
>
> Si lo que quieres es trazar la ejecución del código, hay herramientas que
> lo hacen excelentemente sin necesidad de que alteres tu código -profilers
> y analizadores de cobertura (code coverage): soy un poco rudimentario, de
> manera que no uso ninguno y sólo puedo decirte que existen, y creo que VS
> incluye un profiler.
>
> Por 40 USD (si no ha subido) puedes comprar las MZ Tools para VS2003 y
> posteriores, que son una excelente ayuda para el desarrollo formalizado.
> El IDE de VS es más completo que el de VB6, de manera que las MZTools no
> resultan tan espectaculares como en VB6, pero pueden servirte para definir
> plantillas de código en las que establezcas un procedimiento estándar de
> declaración de funciones que incluyan el trazado de ejecución
> condicionalmente (en función de la configuracion Debug/Release), por
> ejemplo. Esas plantillas te permiten acceder genéricamente al nombre de la
> función, pero lo reemplazan por un valor constante en tiempo de
> desarrollo. Son mucho más fáciles de defiir que los "snippets" de VS2005,
> y las tienes igualmente disponibles.
>
> Salud!
>
>



Responder Con Cita
 
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
funcion el nombre del objeto no es valido Edgar Brito Newsgroup microsoft.public.es.sqlserver 3 26-06-2008 18:10:01
Re: Siempre me ha parecido impúdico firmar con mi propio nombre. Es una tontería, lo sé, porque al fin y al cabo ¿cuál es el verdadero nombre, el nombre propio de una persona? ¿Acaso el que le impusieron al nacer, que es una suerte de capricho patern zinnia Newsgroup es.humanidades.literatura 0 18-06-2008 18:30:14
Función "En nombre de" en owa, es posible? Javi \(CC\) Newsgroup microsoft.public.es.exchange 1 20-02-2008 12:36:55
Nombre de una funcion Pere Pujal i Carabantes Newsgroup es.comp.os.linux.programacion 40 24-12-2007 08:08:19
Obtener el nombre de menu dentro de la funcion llamada. Tomas Newsgroup microsoft.public.es.vc 12 10-05-2007 07:20:39





Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.