Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Enemy en 26 Julio 2009, 04:23 am



Título: Error con carga de Progressbar y CommonDialog
Publicado por: Enemy en 26 Julio 2009, 04:23 am
Bueno, mi problema es el siguiente. No logro hacer que al querer cancelar el guardado de un archivo, o sea, cuando doy en cancelar en vez de guardarlo, se quite la barra de carga, porque cuando guardo el archivo, esta bien, doy en guardar y carga la barra y dice generado con exito etc. pero a la hora de cancelar, en vez de que se cierre la ventana y continuar con lo de antes, esta carga se carga igual y el mensaje tambien sale y es un embole. Alguien me da un pie para corregir? Aqui les dejo el code, haber en que estoy equivocado:

Código:
If Text1.Text = "" Then
        MsgBox "No hay nada que Generar!", vbCritical, "Worm Kreator 1.0 [error]"
    Else
        CD1.FileName = "Worm.vbs"
        CD1.Filter = "Archivos vbs |*.vbs"
        CD1.ShowSave
        Open CD1.FileName For Output As #1
        Print #1, Text1.Text + vbCrLf
        Close #1
        PB1.Visible = True
        For i = PB1.Min To PB1.Max
            PB1.Value = i
        Next i
        MsgBox "Worm Generado con Exito", vbInformation, "Worm Kreator 1.0 [Done]"
        PB1.Visible = False
End If

PB1: ProgressBar
CD1: CommonDialog

Gracias de antemano..





SALUD.O.S


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: BlackZeroX en 26 Julio 2009, 04:40 am
Código
  1. DIM STRSAVEFILE AS STRING
  2. If Text1.Text = "" Then
  3.        MsgBox "No hay nada que Generar!", vbCritical, "Worm Kreator 1.0 [error]"
  4.    Else
  5.        CD1.FileName = "Worm.vbs"
  6.        CD1.Filter = "Archivos vbs |*.vbs"
  7.        CD1.ShowSave
  8. `-----------
  9. STRSAVEFILE=CD1.FileName
  10. IF STRSAVEFILE<>"" THEN
  11. '------------
  12.        Open STRSAVEFILE For Output As #1
  13.        Print #1, Text1.Text + vbCrLf
  14.        Close #1
  15.        PB1.Visible = True
  16.        For i = PB1.Min To PB1.Max
  17.            PB1.Value = i
  18.        Next i
  19.        MsgBox "Worm Generado con Exito", vbInformation, "Worm Kreator 1.0 [Done]"
  20. '----------
  21. ELSE
  22.        PB1.Visible = False
  23. 'SENTENCIAS DE CANCELACIŇN
  24. END IF
  25. '----------
  26. End If

Nos vemos.

Dulces Lunas


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: Enemy en 26 Julio 2009, 04:57 am
Es similar a este pedazo de codigo:

Código:
Private Sub Command1_Click()

Dim KWorm As String

On Error Resume Next

CD1.Filter = "Archivos vbs |*.vbs"
CD1.FileName = ""
CD1.ShowOpen
If CD1.FileName = "" Then Exit Sub
Open CD1.FileName For Input As #1
Do Until EOF(1)
KWorm = Input(1, #1)
Text1.SelText = Text1.SelText + Text1.SelText & KWorm
Loop
Close #1

End Sub

Pero con ese abro el archivo.

Pero sigue apareciendo la barra aun asi cuando presiono "CANCELAR". Lo que tengo que lograr es que aparezca la barra cuando quiero guardarlo pero que NO aparezco cuando presiono sobre cancelar.


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: BlackZeroX en 26 Julio 2009, 05:25 am
SITUA PB1.Visible = False AL INICIO


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: Enemy en 26 Julio 2009, 05:29 am
Lo esta en el "Form_Load"

Solo se vuelve visible cuando presiono el boton generar.


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: seba123neo en 26 Julio 2009, 05:38 am
Código
  1. DIM STRSAVEFILE AS STRING
  2. If Text1.Text = "" Then
  3.        MsgBox "No hay nada que Generar!", vbCritical, "Worm Kreator 1.0 [error]"
  4.    Else
  5.        CD1.FileName = "Worm.vbs"
  6.        CD1.Filter = "Archivos vbs |*.vbs"
  7.        CD1.ShowSave
  8. `-----------
  9. STRSAVEFILE=CD1.FileName
  10. IF STRSAVEFILE<>"" THEN
  11. '------------
  12.        Open STRSAVEFILE For Output As #1
  13.        Print #1, Text1.Text + vbCrLf
  14.        Close #1
  15.        PB1.Visible = True
  16.        For i = PB1.Min To PB1.Max
  17.            PB1.Value = i
  18.        Next i
  19.        MsgBox "Worm Generado con Exito", vbInformation, "Worm Kreator 1.0 [Done]"
  20. '----------
  21. ELSE
  22.        PB1.Visible = False
  23. 'SENTENCIAS DE CANCELACIŇN
  24. END IF
  25. '----------
  26. End If

Nos vemos.

Dulces Lunas

no entiendo como esta indentado ese codigo...pero esta bien si .Filename devuelve vacio es porque apreto cancelar...

mira lo facil que es el solucionar el problema...pone un punto de interrupcion y seguilo y fijate por donde entra el codigo y vas a saber porque esta fallando...

saludos.


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: Enemy en 26 Julio 2009, 06:06 am
Si doy en "cancelar" tambien se genera el archivo.

Sigo sin comprender  :-\


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: BlackZeroX en 26 Julio 2009, 06:12 am
mira lo facil que es el solucionar el problema...pone un punto de interrupcion y seguilo y fijate por donde entra el codigo y vas a saber porque esta fallando...

O puede hacer ya un diagrama de flujo ¬¬"... aun que esto ya seria muy.ˇ!

Dulces lunas.ˇ!


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: Enemy en 26 Julio 2009, 19:17 pm
Ese codigo es correcto pero le falta mas todavia.

Que puedo hacer? que sugieren?


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: seba123neo en 27 Julio 2009, 01:36 am
lo que vos tenes que hacer es poner la propiedad del commondialog CancelError = True , eso te va  a tirar un error cuando apretes el boton de cancelar, y lo unico que tenes que hacer es capturar ese error...el numero del error es el 32755...haces un On Error Go to y en la etiqueta pones que si el error = 32755 pues que no muestre la barra...

saludos.


Título: Re: Error con carga de Progressbar y CommonDialog
Publicado por: Enemy en 27 Julio 2009, 20:57 pm
Saabeee xD, Muchas gracias men, Ahora funciona, asi quedo:

Código:
Private Sub Command3_Click()
On Error Resume Next
Dim KWorm As String
Dim i As Long
If Text1.Text = "" Then
        MsgBox "No hay nada que Generar!", vbCritical, "Worm Kreator 1.0 [error]"
            Else
                On Error GoTo Cancel
                CD1.FileName = "Worm.vbs"
                CD1.Filter = "Archivos vbs |*.vbs"
                CD1.ShowSave
                Open CD1.FileName For Output As #1
                Print #1, Text1.Text + vbCrLf
                Close #1
                PB1.Visible = True
                For i = PB1.Min To PB1.Max
                PB1.Value = i
                Next i
                MsgBox "Worm Generado con Exito", vbInformation, "Worm Kreator 1.0 [Done]"
                PB1.Visible = False
               
    End If
Cancel:
If Error = 32755 Then
    PB1.Visible = False
End If
End Sub


Gracias  ::)