Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: visualfree en 9 Octubre 2006, 07:56 am



Título: Duda facil pero dificil para mi =(
Publicado por: visualfree en 9 Octubre 2006, 07:56 am
Private Sub Command1_Click()
Dim a As Integer
a = 23
MsgBox a
End Sub

Private Sub Command2_Click()
MsgBox a
End Sub

como puedo hacer eso osea declaro un variable con un valor que al ahcer click en el boton uno me muestra el mensaje con el valor pero como hago para que me muestre la variable del boton 1 en el boton 2 ? alguien q me ayude plz


Título: Re: Duda facil pero dificil para mi =(
Publicado por: visualfree en 9 Octubre 2006, 08:38 am
A otra sin dejarla como variable global.


Título: Re: Duda facil pero dificil para mi =(
Publicado por: visualfree en 9 Octubre 2006, 09:25 am
Para ir mas al callo de lo que quiero hacer es esto:

Private Sub ws_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim datos As String
Dim perro As String
ws(Index).GetData datos
ws(indice).SendData datos
End Sub

Private Sub ws1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
ws1(Index).GetData indice
End Sub

entonces el indice lo quiero pescar  en el dataarrival del ws pero no me lo toma me lo deja como vacio nose si alguien sabra como hacerlo espero su ayuda amigos


Título: Re: Duda facil pero dificil para mi =(
Publicado por: <--v1c1ous--> en 9 Octubre 2006, 15:02 pm
Lo de tu primer post:

¿Por que sin usar variables globales?
Si no usas variables globales la variable pierde el valor asignado al  terminar la funcion, asi que al volver a ejecutar la funcion empieza de cero otra vez.
Y al no ser global otra funcion no puede leerla porque no esta declarada.

Tenes dos opciones:
1- O usar variables globales.
2- O pasar datos de funcion en funcion, ejemplo:

Citar
Funcion UNO()
Dim MisDatos as String
MisDatos = "Hola!"
msgbox MisDatos
DOS (MisDatos)
End Funcion

Funcion DOS(Datos as String)
msgbox Datos
End Funcion

En tu ultimo post:

Suponiendo que ws es del programa UNO y ws1 del programa DOS

UNO toma los datos que se le envian y los vuelve a enviar a DOS ¿Para que?

Como sea, no estas usando ningun Index, la forma correcta de hacerlo es:

Citar
Private Sub ws_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim datos As String
ws.GetData datos
ws.SendData datos
End Sub

Private Sub ws1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim datos1 As String
ws1.GetData datos1
End Sub

PD:Postea tu duda mas puntual de que es lo que queres hacer exactamente, asi podre decirte de que forma hacerlo.


Título: Re: Duda facil pero dificil para mi =(
Publicado por: NYlOn en 12 Octubre 2006, 01:06 am
No hace falta que sea una variable global, con que este en la parte de declaraciones del formulario va a ir bien (solo si los sockets estan en el mismo formulario). De lo contrario podrias o declararla en un modulo o como publica en alguno de los formularios. Despues para usarla pones:
Código:
MsgbBox Fromulario.Variable


Citar
no estas usando ningun Index, la forma correcta de hacerlo es:

Lo esta usando bien, si el WS tiene index, su sintaxis es:
Código:
WS(Index).Propiedad



Saludos y por favor, se un poco mas claro.-


Título: Re: Duda facil pero dificil para mi =(
Publicado por: MORFEO_2 en 25 Octubre 2006, 07:19 am
Dim a As String

Private Sub Form_Load()
a = 23
End Sub
Private Sub Command1_Click()
MsgBox a
End Sub

Private Sub Command2_Click()
MsgBox a
End Sub


el siguiente solo si presionas primero el  command1

Dim a As String


Private Sub Command1_Click()
a = 23
MsgBox a
End Sub

Private Sub Command2_Click()
MsgBox a
End Sub