Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Codigo Copiado, Y Uno De Ellos No Funciona
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Codigo Copiado, Y Uno De Ellos No Funciona 
 
Pues eso, que tengo este codigo (literalmente copiado de uno a otro), pero cada uno tiene un comportamiento diferente...y no se porque, a ver si me podeis echar un cable.

PUBLIC SUB Form_Close()

  SELECT CASE Message.Warning("¿Seguro que desea cerrar?" & "\n" & "Podría perder el trabajo realizado hasta el momento",
                    "Si, deseo cerrar", "No, deseo cerrar")
  CASE (1)
    FMain.Visible = TRUE
    ME.Close
  END SELECT
  
END

PUBLIC SUB btn_SalirNuevo_Click()

  SELECT CASE Message.Warning("¿Seguro que desea cerrar?" & "\n" & "Podría perder el trabajo realizado hasta el momento",
                    "Si, deseo cerrar", "No, deseo cerrar")
  CASE (1)
    FMain.Visible = TRUE
    ME.Close
  END SELECT
  
END


En teoria deberia de ocurrir lo mismo, tanto en un caso como en otro, pero no es asi.
Si cierro el formulario mediante el evento Form_Close, sale el Message.Warning y al cliquear en "Si, deseo cerrar", se cierra el formulario y se ve el otro formulario (FMain).

En cambio, si cierro mediante el btn_SalirNuevo_Click, me sale el Message.Warning, y al darle a que si quiero cerrar, parpadea y se mantiene el Mesage.Warning en pantalla, hasta que clikeo de nuevo en que si que quiero cerrar y ya sale correctamente.

Esto es debido a gambas o a que mi codigo esta mal escrito....pero si estuviese mal escrito, no funcionaria con el evento Form_Close no?

Salud y graciaas!!!
 



 
AnSnarkista - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Codigo Copiado, Y Uno De Ellos No Funciona 
 
Ya se  lo que te pasa.....   .

cuando pulsas el boton. y se ejecta
PUBLIC SUB btn_SalirNuevo_Click()

SELECT CASE Message.Warning("¿Seguro que desea cerrar?" & "\n" & "Podría perder el trabajo realizado hasta el momento",
                  "Si, deseo cerrar", "No, deseo cerrar")
CASE (1)
 
  ME.Close
END SELECT

END


Al hacer ME.CLOSE,
se ejecuta tambien el evento... Form_Close (es como si estuvieran ligados...)

con lo cual te vuelve a repetir la pregunta.....

Codigo para solucionarlo (no lo preguntes al pulsal el boton)
PUBLIC SUB Form_Close()

 SELECT CASE Message.Warning("¿Seguro que desea cerrar?" & "\n" & "Podría perder el trabajo realizado hasta el momento",
                   "Si, deseo cerrar", "No, deseo cerrar")
 CASE (1)
   FMain.Visible = TRUE
   ME.Close
 END SELECT
 
END

PUBLIC SUB btn_SalirNuevo_Click()

   ME.Close
 
END



Y solo te lo va ha preguntar una vez.....¿facil no?


Nota:
Yo no conocia el evento Form_Close.... me lo acabas de enseñar tu...gracias...
A mi me pasaba algo parecido (salia de manera brusca cuando pulsaba la "X" del borde derecho superior , y lo que hacia en mis aplicaciones era quitar el borde del formulario (ya no aparecia la "X" de cerrar) y salia
pulsando un boton que contenia, el codigo me.close


Gracias, creo que te he resuelto tu problema....y el mio tambien.....


Julio
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Domingo, 01 Agosto 2010, 13:14; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Codigo Copiado, Y Uno De Ellos No Funciona 
 
Mi gozo en un pozo.......         



Aunque para salir "sales bien",si le dices que no quieres salir,sale de todos modos.....


No se como cancelar ese evento..... form_close()


     

¿alquien sabe como????
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Codigo Copiado, Y Uno De Ellos No Funciona 
 
YA LO TENGO........




Esta es la manera de "parar" un evento....

El codigo quedaria asi:

PUBLIC SUB Form_Close()

SELECT CASE Message.Warning("¿Seguro que desea cerrar?" & "\n" & "Podría perder el trabajo realizado hasta el momento",
                  "Si, cierro", "No, mejor vuelvo al programa...")
CASE (1)
  FMain.Visible = TRUE
  ME.Close

CASE (2)

STOP EVENT

END SELECT

END
 


Y el codigo del boton:
PUBLIC SUB btn_SalirNuevo_Click()

  ME.Close

END



Jo.... que de cosas aprende uno respondiendo a dudas de otros....jajajajaj
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Codigo Copiado, Y Uno De Ellos No Funciona 
 
Yo lo escribiría así. Creo que es más limpio y no es necesario usar SELECT para una sola condición.


PUBLIC SUB Form_Close()

    IF Message.Warning("¿Seguro que desea cerrar?" & "\n" & "Podría perder el trabajo realizado hasta el momento",
                       "Si, cierro", "No, mejor vuelvo al programa...") = 1 THEN
        ME.Close
    ELSE
        STOP EVENT
    ENDIF

END
 


Y el código del botón sin cambios.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Codigo Copiado, Y Uno De Ellos No Funciona 
 
Gracias a ambos por la ayuda, realmente era una tonteria bastante grande...

Lo he dejado tal que asi:
PUBLIC SUB Form_Close()

  SELECT CASE Message.Warning("¿Seguro que desea cerrar?" & "\n" & "Podría perder el trabajo realizado hasta el momento",
                    "Si, deseo cerrar", "No, deseo cerrar")
  CASE (1)
    FMain.Visible = TRUE
    ME.Close
  CASE ELSE
    STOP EVENT
  END SELECT
  
END

PUBLIC SUB btn_SalirNuevo_Click()

    FMain.Visible = TRUE
    ME.Close

END


He dejado el SELECT CASE , porque personalmente me gusta mas, me queda como mas claro ir parte por parte, aunque con el IF es igual.

Realmente no hay diferencias entre uno y otro ¿no?

Muchas gracias de nuevoo!!
 



 
AnSnarkista - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Codigo Copiado, Y Uno De Ellos No Funciona 
 
Hombre, diferencias las hay y son precisamente en el uso que le damos, aunque las dos sean estructuras de control y hagan lo mismo.

Para el uso que le estás dando, es como matar moscas a cañonazos.
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Codigo Copiado, Y Uno De Ellos No Funciona 
 
AnSnarkista:

    Estoy preparando un programa para hacer "Un Presupuesto Familiar", que usa muchisimo la orden SELECT CASE,
de manera exhaustiva, y que con if.. then seria casi una locura hacerlo funcionar...


Ya me queda poco para terminarlo, una semana o asi,... (espero...   ) en cuanto este listo, subo el código a mi  blog y a la comunidad...


Saludos

Julio
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Codigo Copiado, Y Uno De Ellos No Funciona 
 
¿Pero ocupa mas recursos o algo o es que simplemente SELECT CASE se usa para cuando hay muchas opciones concretas que elegir?

Si pudieras explicarme un poco porqué...estaria muuy agradecido.


Muchas gracias de todas formas
 



 
AnSnarkista - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Codigo Copiado, Y Uno De Ellos No Funciona 
 
Pues mira cuando hay muchas comparaciones a realizar....

Fijate en este ejemplo que te pongo, primero hay un
if... then,
y luego dentro de el hay un

¿Te imaginas hacer los con 11
if..then,
,, con sus ,,, y que se te olvide alguno,, que lio,no?,, ¿¿¿por donde empezar a buscar el error????

Sin embargo con el Select Case queda todo mas claro...

FOR c = 0 TO FMain.TableViewdatos.rows.count - 1
  tipo = Left(FMain.TableViewdatos[c, 0].text, 3)
  restotipo = Right(FMain.TableViewdatos[c, 0].text, 2)

 
 IF restotipo <> "01" THEN
   SELECT CASE tipo
    CASE "01."
     FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalingreso)

    CASE "02."
      FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalgastobasicosAli)
 
    CASE "03."
          FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalgastobasicosRopa)
      
    CASE "04."
    FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalgastobasicosOtroGastos)
 
    CASE "05."
FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalvehiculos)

    CASE "06."
FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalocio)


    CASE "07."
FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalformacion)

    CASE "08."
FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalvivienda)

    CASE "09."
FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalmascotas)

    CASE "10."
FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalvarios)

    CASE "11."
FMain.TableViewdatos[c, 4].text = f3(Val(f2(FMain.TableViewdatos[c, 3].text)) / var.sumatotalahorro)

 END SELECT

ENDIF
NEXT


Espero que te sirva el ejemplo...

Un saludo

Julio
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Domingo, 01 Agosto 2010, 21:11; editado 2 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes No Me Funciona El Maximizar En 2.18 CanihoJR General 5 Sabado, 16 Enero 2010, 17:19 Ver último mensaje
CanihoJR
No hay nuevos mensajes Make No Me Funciona Sebas Instalación 4 Lunes, 08 Octobre 2012, 23:11 Ver último mensaje
sebikul
No hay nuevos mensajes ¿Os Funciona La Granja? shordi General 8 Viernes, 27 Julio 2018, 16:47 Ver último mensaje
shordi
No hay nuevos mensajes Los Lenguajes Perdidos: COBOL, Delphi O FO... Shell General 2 Martes, 21 May 2019, 11:01 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron