COMO SE LLAMA A UN PROCEDIMIENTO DESDE OTRO FORM??

maya
08 de Enero del 2004
el problema es el suiente:

tengo una serie de matrices en el "form3" , que se visualizan en el "form6"

una vez que se comprueba que estas estan bien, tengo que operar con ellas, por ejemplo multiplicarlas...

eso esta hecho (creo), el problema es que quiero que me las multiplique al picar en un boton situado en el "form6"

en el momento de picar el boton lo que quieroo que me haga, es que llame a un procedimiento que esta en el "form3", que es donde tengo toda la multiplicacion de matrices.

como hago para llamar al procedimiento?? porque me da "error de compilacion o sintaxis"

el procedimiento es el siguiente:

'----------------------- en el form6 tengo:



Private Sub Command1_Click()

Call sub matriznormal()


End Sub


' ------------------------ en el form 3 tengo:

Sub matriznormal()

ReDim matN_dch(3, 3)
ReDim solucion4d(3, 3)

valor = 0

For fila = 0 To 3 ' la matriz normal tiene dimension 4x4

For columna = 0 To 3

For contador = 0 To 2 * n - 1 ' esel valor de la columnas= filas de A y Atrasp

valor = valor + solucion3d(fila, contador) * solucion2d(contador, columna)

matN_dch(fila, columna) = valor

Next

'matN_dch(fila, columna) = valor

Next

Next

solucion4d() = matN_dch()

end sub






gracias, salu2



reventador
08 de Enero del 2004
hola maya,

En el Form3 debes definirte el Sub al que quieres llamar de forma pública de esta forma:

Public Sub matriznormal()
......
End Sub


Y la función que debes hacer para ejecutarlo desde el otro Form es la siguiente:

Call Form3.matriznormal


Con esto consigues que te abra un formulario Form3 cada vez que el usuario pulsa el botón Command1. Si lo que quieres es que te lo ejecute en el mismo formulario y no te abra uno nuevo cada vez, puedes hacer lo que suelo hacer yo (posiblemente haya métodos mejores, pero a mi con este me sobra).
Te declaras una variable Publica de tipo Boolean en un módulo global y una variable Publica de tipo Form3, por ejemplo:

Public form3_cargado As Boolean
Public form3_instance As Form3

En el evento Load del Form3, debes poner:

form3_cargado = True

Y en el evento QueryUnload del Form3, debes poner:

form3_cargado = False


Con esto, puedes comprobar antes de llamar al procedimiento del otro form si el formulario está cargado, y si no lo está lo cargas, te quedaria asi:

Private Sub Command1_Click()

If form3_cargado = False Then
Dim nuevo_form As New Form3
nuevo_form.Show
form3_instance = nuevo_form
End If

Call form3_instance.matriznormal

End Sub


Espero que te sirva de ayuda, un saludo.

kinoscar
08 de Enero del 2004
o simplemente hazlo asi
Form3.matriznormal