Foros del Web » Programación para mayores de 30 ;) » .NET »

llamar funcion en modulo desde formulario

Estas en el tema de llamar funcion en modulo desde formulario en el foro de .NET en Foros del Web. hola, un saludo a todo el foro. Estoy empezando en visual Studio .net.............tener paciencia conmigo...........tengo un problema, creo una funcion en un modulo de esta ...
  #1 (permalink)  
Antiguo 30/05/2005, 07:17
Avatar de Pinta  
Fecha de Ingreso: mayo-2005
Ubicación: Gijon (España)
Mensajes: 29
Antigüedad: 19 años, 8 meses
Puntos: 0
llamar funcion en modulo desde formulario

hola, un saludo a todo el foro.

Estoy empezando en visual Studio .net.............tener paciencia conmigo...........tengo un problema, creo una funcion en un modulo de esta manera:

Module Module1
Public Class Funciones

Public Function ParametrosEscala(ByVal Descripcion As String) As String
'datos de la funcion
End Function

End Class
End Module


El problema surge cuando la quiero llamar desde un formulario, pongo:

Valor = Module1.Funciones(ParametrosEscala(Me.ComboBox2.Te xt))


pero no la reconoce.

un saludo,
  #2 (permalink)  
Antiguo 30/05/2005, 07:28
 
Fecha de Ingreso: mayo-2005
Mensajes: 122
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta

Public Function ParametrosEscala(ByVal Descripcion As String) As String
'datos de la funcion
End Function

Si la tienes declarada como pública en un módulo aparte solo tienes que llamarla de la siguiente manera

Dim ValRetorno as string

ValRetorno = ParametrosEscala("Hola")



espero te sirva la ayuda
  #3 (permalink)  
Antiguo 30/05/2005, 07:38
Avatar de Pinta  
Fecha de Ingreso: mayo-2005
Ubicación: Gijon (España)
Mensajes: 29
Antigüedad: 19 años, 8 meses
Puntos: 0
gracias por tu respuesta, pero el problema es que al poner

ValRetorno = ParametrosEscala("Hola")

me dice que no se ha declarado el nombre ParametrosEscala

Un saludo,
  #4 (permalink)  
Antiguo 30/05/2005, 07:52
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
Pues como vas a acceder a un miembro no compartido o miembro de instancia necesitas primero crear el objeto para poder acceder a dicho miembro.. Intenta esto:

Dim oFunciones As New Funciones
ValRetorno = oFunciones.ParametrosEscala("Hola")
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #5 (permalink)  
Antiguo 30/05/2005, 07:57
 
Fecha de Ingreso: mayo-2005
Mensajes: 122
Antigüedad: 19 años, 8 meses
Puntos: 0
Joer

Es verdad jeje no me había dado cuenta que era una clase. Entonces tal y como dice el anterior mensaje tienes que crear primero una instancia de esa clase y luego llamarla tal y como te dice el

Lo siento
  #6 (permalink)  
Antiguo 30/05/2005, 07:59
Avatar de Pinta  
Fecha de Ingreso: mayo-2005
Ubicación: Gijon (España)
Mensajes: 29
Antigüedad: 19 años, 8 meses
Puntos: 0
ok, gracias, asi funciona correctamente.

porque dices miembro no compartido??

yo antes en visual studio 6 ponia una funcion publica y podia acceder a ella desde cualquier formulario, sin falta de poner class.

perdona mi torpeza porque soy nuevo en esto, si pudes explicar un poco este tema te lo agradeceria.

un fuerte abrazo desde Gijón (España)

Última edición por Pinta; 30/05/2005 a las 09:56
  #7 (permalink)  
Antiguo 30/05/2005, 08:37
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
Cita:
Iniciado por Pinta
perdona mi torpeza porque soy nuevo en esto, si pudes esplicar un poco este tema te lo agradeceria.
No problem friend..
Bueno te cuento que también soy nuevo en .NET y en Programación orientada a objetos (POO), así que mi explicación quizá no sea la mejor del mundo jeje

Si tuvieces esto en tu módulo:

Module Module1
Public Function ParametrosEscala(ByVal Descripcion As String) As String
'datos de la funcion
End Function
End Module

Sin el "public class", no tendrías necesidad de crear un objeto para acceder a tu función "ParametrosEscala", ya que implicitamente todos los miembros que están dentro de un modulo son compartidos (los podrías acceder como lo hacías en vb6.0), y digo implicitamente porque no la declaras asi:
Public Shared Function ParametrosEscala, que es como declaras un miembro que va a ser compartido... Pero como tienes tu función dentro de una Clase ("Public Class Funciones") debes crear un objeto para poder acceder a todos los miembros que tengas allí, a menos que los declares como compartidos (Shared para vb y Static para c#)...

Aqui te dejo unos enlaces donde hablan un poco al respecto
http://msdn.microsoft.com/library/sp...redmembers.asp
http://www.elguille.info/NET/cursoVB...torVBNET15.htm

Espero haberte aclarado un poquillo, jej jej...

Saludos.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #8 (permalink)  
Antiguo 30/05/2005, 09:15
Avatar de Pinta  
Fecha de Ingreso: mayo-2005
Ubicación: Gijon (España)
Mensajes: 29
Antigüedad: 19 años, 8 meses
Puntos: 0
un monton,

Muchas gracias por todo.

Un saludo
  #9 (permalink)  
Antiguo 30/05/2005, 09:52
Avatar de Pinta  
Fecha de Ingreso: mayo-2005
Ubicación: Gijon (España)
Mensajes: 29
Antigüedad: 19 años, 8 meses
Puntos: 0
me surje otro problema, tengo un textbox dentro del form1 y me hace falta pillar el valor en el modulo, pongo lo siguiente:

Public Function ParametrosEscala(ByVal Descripcion As String) As String
Dim Formulario1 As New Form1
Dim Paso As Double
Dim FondoD As Double
Dim FondoH As Double
Dim LongH As Double
Dim CantH As Double
Dim LongD As Double
Dim cantD As Double
Dim Ancho As Double
Dim alto As Double
Select Case Descripcion
Case Is = "ESC.M 605 E"
Paso = 600
FondoD = 94
FondoH = 46
Ancho = Val(Formulario1.TextBox1.Text)
Alto = Val(Formulario1.TextBox2.Text)

Ancho y Alto me devuelve 0.0 cuando los textbox tienen un valor metido.

un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.