bueno... hice un programa... envia archivos del cliente al servidor.. pero mi problema es este... cuando busco un archivo y se muestra el commondialog, si yo no pongo abrir y pongo cancelar tira un error y se cierra el programa...
les dejo parte del code:
CommonDialog = CD
If WS.State = 7 Then
CD.ShowOpen
RutArchivo = CD.FileName
Open RutArchivo For Binary As #1
EnvArchivo = Input(LOF(1), 1)
Close #1
EnvTam = Len(EnvArchivo)
WS.SendData "Archivo|" & RutArchivo & "|" & EnvTam
Form1.Caption = "Share - Esperando que acepte el archivo"
Color (3)
Exit Sub
End If
probe con CD.CancelError = true , desp con False y no se q mas hacer... probe con If etc... en google hay un ejemplo pero con el show font, y no lo termine de entender... si alguno me dice como hacer se lo agraderia
La forma mas facil (que no la mas elegante) es:
On Error Goto Error
If WS.State = 7 Then
CD.ShowOpen
RutArchivo = CD.FileName
Open RutArchivo For Binary As #1
EnvArchivo = Input(LOF(1), 1)
Close #1
EnvTam = Len(EnvArchivo)
WS.SendData "Archivo|" & RutArchivo & "|" & EnvTam
Form1.Caption = "Share - Esperando que acepte el archivo"
Color (3)
:Error
Exit Sub
End If
Saludos
si esa es la q tenia xD pero... mas abajo cuando recibe el archivo... para poner asi tengo q modificarlo al code xD
otra cosita... en una parte del code tengo dos InpuBox, pero si se cancela uno... se sigue con el codigo como si hubiese aceptado.. y en el caso de no poner nada va al error
el code es
Private Sub Command2_Click()
On Error GoTo Peor
Puerto = InputBox("Ingrese Puerto para Escuchar:", "Share Escuchar", "200")
If Puerto = vbCancel Then
Exit Sub
End If
WS.Close
WC.Close
WC.LocalPort = Puerto
WC.Listen
Command1.Enabled = False
Form1.Caption = "Share - Esperando Conexión"
Color (3)
Exit Sub
Peor:
MsgBox "Error, verifique que los datos ingresados sean correctos.", vbCritical, "Share Error"
End Sub
pense q seria como el msgbox... pero se ve q no xD jejej alguna idea de como hacerlo? aca no puedo usar el On Error Goto xq lo use para el caso de q en el puerto pongan una palabra...
Citarsi yo no pongo abrir y pongo cancelar tira un error y se cierra el programa...
Para evitar que se cierre al cancelar, yo hacia esto:
Private Sub Command1_Click()
On Error Resume Next
With CommonDialog1
.CancelError = True 'Esto hará que VB devuelva un error al pulsar Cancelar
.ShowOpen 'Muestra el cuadro de diálogo Abrir
'Si no se ha producido ningún error, es que NO se ha pulsado Cancelar
If Err.Number = 0 Then
'Aqui tu code
End If
End With
'-------------------------->> Control de Errores <<------------------------------
'Es buena costumbre volver a ponerlo a cero... así dejamos de detectar errores
Err = 0 'cancelamos el error/ 0 es que no hay error
On Local Error GoTo 0 'sirve si queremos dejar de detectar errores
End Sub
Saludos! ¡quizas sirva de algo! voy rápido y no me da tiempo de leer más... :rolleyes:
jja si barbaro muchas gracias :DD: ;)
Hola... con un poco más de tiempo...
Citarpense q seria como el msgbox... pero se ve q no xD jejej alguna idea de como hacerlo? aca no puedo usar el On Error Goto xq lo use para el caso de q en el puerto pongan una palabra...
Al parecer, no!
Puerto = InputBox("Ingrese Puerto para Escuchar:", "Share Escuchar", "200")
If Puerto = vbCancel Then' <--- ???
Exit Sub
End If
Cuando se presiona el botón Cancelar o se cierra el imputBox usando la X, el programa devuelve una cadena de caracteres igual a 0, por lo tanto --> Puerto = "" y la comparación deberia ser:
If Puerto <> "" Then
'Hago algo...
End If
'ó asi:
If Puerto = "" Then
'Hago algo...
End If
Usando tu code, yo lo haria asi:
Option Explicit
'----------------------------------- _
Controlando entradas de un ImputBox _
------------------------------------
Private Sub Form_Load()
Dim Puerto As String 'Almacenará el puerto de escucha
Repetir: 'Repetir hasta que se presione cancelar, se cierre la ventanita "X" ó hasta _
que el valor devuelto sea valido
'Almacenamos el valor
Puerto = InputBox("Ingrese Puerto para Escuchar:", "Share Escuchar", "200")
'Si "Puerto" tiene algun valor, es porque NO se ha cancelado
If Puerto <> "" Then
'En ese caso, verificamos que sea un valor de puerto válido, sino repetimos
If IsNumeric(Puerto) Then
'Tu code
WS.Close 'Cerrando el socket
WC.Close
WC.LocalPort = Puerto 'Asignando puerto
WC.Listen 'Escuchando...
Command1.Enabled = False
Form1.Caption = "Share - Esperando Conexión"
Color (3)
Else
GoTo Repetir
End If
Else
'Si cancelamos, nos vamos... :-[
MsgBox "¡Se cancelo!...", vbInformation, "Share Escuchar"
Exit Sub
End If
'Mostramos el número de puerto...
MsgBox "El número de puerto introducido es el '" & Puerto & "'"
End Sub
Saludos! espero que te sea de utilidad... :P
jaja muchas gracias!! re bien explicado :P jeje
ahroa estoy haciendo graficos para darle una mejor forma y apariencia.. luego le pongo la transpariencia y va a quedar de 10 ;)