|
Página 1 de 2
|
Codigo Copiado, Y Uno De Ellos No Funciona
Autor |
Mensaje |
AnSnarkista
Programador
Registrado: Junio 2010
Mensajes: 118
Edad: 33
|
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.
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!!!
|
#1 Domingo, 01 Agosto 2010, 10:11 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 50 Ubicación: dos hermanas, sevilla
|
Re: Codigo Copiado, Y Uno De Ellos No Funciona
Ya se lo que te pasa..... .
cuando pulsas el boton. y se ejecta
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)
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
última edición por jsbsan el Domingo, 01 Agosto 2010, 13:14; editado 1 vez
|
#2 Domingo, 01 Agosto 2010, 13:06 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 50 Ubicación: dos hermanas, sevilla
|
Re: Codigo Copiado, Y Uno De Ellos No Funciona
|
#3 Domingo, 01 Agosto 2010, 13:17 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 50 Ubicación: dos hermanas, sevilla
|
Re: Codigo Copiado, Y Uno De Ellos No Funciona
YA LO TENGO........
Esta es la manera de "parar" un evento....
El codigo quedaria asi:
Y el codigo del boton:
Jo.... que de cosas aprende uno respondiendo a dudas de otros....jajajajaj
|
#4 Domingo, 01 Agosto 2010, 13:29 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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.
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"
|
#5 Domingo, 01 Agosto 2010, 15:52 |
|
|
AnSnarkista
Programador
Registrado: Junio 2010
Mensajes: 118
Edad: 33
|
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:
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!!
|
#6 Domingo, 01 Agosto 2010, 16:15 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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"
|
#7 Domingo, 01 Agosto 2010, 19:52 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 50 Ubicación: dos hermanas, sevilla
|
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
|
#8 Domingo, 01 Agosto 2010, 20:52 |
|
|
AnSnarkista
Programador
Registrado: Junio 2010
Mensajes: 118
Edad: 33
|
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
|
#9 Domingo, 01 Agosto 2010, 20:53 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 50 Ubicación: dos hermanas, sevilla
|
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 y luego dentro de el hay un
¿Te imaginas hacer los con 11 ,, 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
última edición por jsbsan el Domingo, 01 Agosto 2010, 21:11; editado 2 veces
|
#10 Domingo, 01 Agosto 2010, 20:55 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|