Hola, he creado un chat en Visual Basic 6 con su respectivo Kliente y Servidor. estoy usando Winsock para la coneccion, pero obtengo un error en el servidor cuando intento eliminar un usuario del kliente. Les dejo el Codigo fuente del Modulo del servidor donde especifica el error haber kien me hecha una mano.
Codigo fuente del Modulo del servidor donde esta el error:
Public Sub BorraCombo()
' limpia el listbox lstclientes
FrmServidor.lstClientes.Clear
Dim i As Integer
For i = 1 To MaxCon
' un cliente está conectado en el socket i
'!!!AQUI ESTÁ EL ERROR!!! Cuando tiene que borrar al usuario seleccionado del lstclientes,pone no coinciden los tipos (Type Missmatch )
If bSocketStatus(i) = True Then FrmServidor.lstClientes.RemoveItem "Cliente " & i & " (" & FrmServidor.SockConecta(i).RemoteHostIP & ")"
Next i
End Sub
Nueva ayudita con Mi Chat en Visual
Moderador: Moderadores
El error está en la instrucción RemoveItem, pues la localización del elemento a eliminar no es posible realizarla identifícandolo por el valor que contiene, sino por su número de orden en la lista.
Saludos.
Saludos.
Equipo ABCdatos.
http://www.abcdatos.com/
http://www.abcdatos.com/
Nuevo Problemita con el Chat
Hola ABC Datos
Entendí tu explicación, lo modifiqué, pero sigo teniendo problemas
Te muestro el codigo:
Private Sub Command1_Click()
'desconecta al cliente seleccionado del lstclientes
numlista = lstClientes.ListIndex 'la variable numlista está declarada en el módulo como publica e integer
sockconecta_Close (numlista)
End Sub
' desconexión de un cliente
Private Sub sockconecta_Close(index As Integer)
' libera el socket usado.
bSocketStatus(index) = False
DebugText "Cliente " & index & " (" & SockConecta(index).RemoteHostIP & " Se Desconecto"
SockConecta(index).Close
BorraCombo (index)
End Sub
Public Sub BorraCombo(index)
' limpia el listbox lstclientes
FrmServidor.lstClientes.Clear
Dim i As Integer
For i = 1 To MaxCon
' un cliente está conectado en el socket i
'!!!AQUI ESTÁ EL ERROR!!! me pone llamada a procedimientos o argumentos no validos
If bSocketStatus(i) = True Then FrmServidor.lstClientes.RemoveItem (index)
Next i
End Sub
No entiendo que pasa, si el parametro que le paso es un integer....
Espero que me tengan paciencia, es ke apenas comienzo con esto del Visual. Gracias y saludos.
Entendí tu explicación, lo modifiqué, pero sigo teniendo problemas
Te muestro el codigo:
Private Sub Command1_Click()
'desconecta al cliente seleccionado del lstclientes
numlista = lstClientes.ListIndex 'la variable numlista está declarada en el módulo como publica e integer
sockconecta_Close (numlista)
End Sub
' desconexión de un cliente
Private Sub sockconecta_Close(index As Integer)
' libera el socket usado.
bSocketStatus(index) = False
DebugText "Cliente " & index & " (" & SockConecta(index).RemoteHostIP & " Se Desconecto"
SockConecta(index).Close
BorraCombo (index)
End Sub
Public Sub BorraCombo(index)
' limpia el listbox lstclientes
FrmServidor.lstClientes.Clear
Dim i As Integer
For i = 1 To MaxCon
' un cliente está conectado en el socket i
'!!!AQUI ESTÁ EL ERROR!!! me pone llamada a procedimientos o argumentos no validos
If bSocketStatus(i) = True Then FrmServidor.lstClientes.RemoveItem (index)
Next i
End Sub
No entiendo que pasa, si el parametro que le paso es un integer....
Espero que me tengan paciencia, es ke apenas comienzo con esto del Visual. Gracias y saludos.
Tras el FrmServidor.lstClientes.Clear no queda ningún elemento a eliminar, el ListBox está vacío ya.
Saludos.
Saludos.
Equipo ABCdatos.
http://www.abcdatos.com/
http://www.abcdatos.com/
Re: Nueva ayudita con Mi Chat en Visual
Hola "bebesita"! ¿Podrías pasarme el código del 'chat'? (jorgevima74@hotmail.com) Gracias.
bebesita escribió:Hola, he creado un chat en Visual Basic 6 con su respectivo Kliente y Servidor. estoy usando Winsock para la coneccion, pero obtengo un error en el servidor cuando intento eliminar un usuario del kliente. Les dejo el Codigo fuente del Modulo del servidor donde especifica el error haber kien me hecha una mano.
Codigo fuente del Modulo del servidor donde esta el error:
Public Sub BorraCombo()
' limpia el listbox lstclientes
FrmServidor.lstClientes.Clear
Dim i As Integer
For i = 1 To MaxCon
' un cliente está conectado en el socket i
'!!!AQUI ESTÁ EL ERROR!!! Cuando tiene que borrar al usuario seleccionado del lstclientes,pone no coinciden los tipos (Type Missmatch )
If bSocketStatus(i) = True Then FrmServidor.lstClientes.RemoveItem "Cliente " & i & " (" & FrmServidor.SockConecta(i).RemoteHostIP & ")"
Next i
End Sub