Visual Basic - Llamar a un procedimiento por referencias

Life is soft - evento anual de software empresarial
 
Vista:

Llamar a un procedimiento por referencias

Publicado por MAngeles (1 intervención) el 23/04/2003 14:54:27
Hola y gracias de antemano.
En un proceso necesito llamar a otros dependiendo de algunos filtros y opciones. Para ello he creado una variable en la que pongo en cada caso el nombre del procedimiento que quiero llamar. Pero no se como tengo que contruir la llamada para que tome el contenido de la variable. En otros lenguajes pasar un dato por referencia se hacia entre parentesis o con un & pero ¿Como se hace en VB6?
Por si no me explico bien os pongo un ejemplo:

sub principal
dim xDonde as String
.
xDonde="CargaDato"
.
call xDonde
.
end sub

sub CargaDato
.
end sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Llamar a un procedimiento por referencias

Publicado por alberto (278 intervenciones) el 23/04/2003 15:52:49
Para llamar a funciones como tú quieres la única forma que conozco es la siguiente:

En un módulo pon el siguiente código:

Option Explicit
Public Funciones As New Collection
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Sub AddFuncProc(funcName As String, FuncAddr As Long)
Funciones.Add FuncAddr, funcName
End Sub
'Todas las funciones que quieras llamar deben tener este prototipo.
Public Function funcion(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
MsgBox hwnd & vbTab & uMsg & vbTab & wParam & vbTab & lParam
funcion = 6
End Function

Para poder llamar a funcion por referencia deberas hacer algo similar a esto:

AddFuncProc "funcion", AddressOf funcion
MsgBox CallWindowProc(Funciones("funcion"), 0, 1, 3, 4)

Si quieres mas información ponte en contacto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar