FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Evento de formulario posterior a onshow
No se si habrá algun evento en un formulario que se lance despues del onshow y que permita cerrar el formulario. El Objetivo es poder cerrarlo o no en función de lo que haya pasado durante el evetno onshow.
Última edición por apicito fecha: 11-06-2004 a las 14:52:00. |
#2
|
|||
|
|||
Quizás podría servirte el Loaded, protegido en el padre.
O si nos explicas las condiciones quizás alguna otra manera (incluso no llegar a crear el formulario haciendo las comprovaciones antes) |
#3
|
||||
|
||||
En el form padre creo el formulario, después le asigno valores a una variables públicas y con esas variables publicas, en el onshow hago comprobaciones en la base de datos. El problema es que algunas veces, como consecuencia de esas comprobaciones, me interesa hacer un showmessage y cerrar el formulario, pero no lo consigo ya que en el onshow no funciona el close.
|
#4
|
|||
|
|||
Vale, bien..... y no te sería más sencillo hacer las comprovaciones antes de mostrar el formulario (antes del Show)??
Espero te sirva |
#5
|
||||
|
||||
En la creación del formulario la hago por referencia, ya que se llama muchos formularios distintos y con distintas comprobaciones, entonces las comprobaciones las tengo que hacer en el formulario hijo.
|
#6
|
||||
|
||||
mira el procedimiento de llamada:
Código:
if Sender.ClassType = TToolButton then FormaClase:=TExpFormClass(GetClass('TExp'+inttostr((Sender as TToolButton).Tag))) else if Sender.ClassType = TMenuItem then FormaClase:=TExpFormClass(GetClass('TExp'+inttostr((Sender as TMenuItem).Tag))) else Exit; if FormaClase<>nil then begin Forma:=FormaClase.Create(Self); Forma.codigo:=0; Forma.Expte:=QueryDia.fieldbyName('EXPDIA_CODIGO').AsInt64; Forma.Modo:='A'; Forma.Part:=Part; Forma.Tipo:='EXP'+Part+QueryDia.fieldbyName('EXPDIA_TIPO').AsString; Forma.ExpAno:=EAno.Text; Forma.ExpNum:=ENumero.Text; Forma.Idioma:=Idioma; Forma.Dni:=EDni.Text; Forma.DniDup:=EDniDup.Text; Forma.ShowModal; |
#7
|
||||
|
||||
Cita:
// Saludos |
#8
|
||||
|
||||
Aunque no os lo creais no me vale ninguno de los trucos ateriores en este caso particular, os explico:
Bien, estamos en una aplicacion CLX (delphi 7.0 - kylix 3), y quiero (lease me obligan) una pantalla de selección Pre-formulario principal, el caso es que si pulsan cerrar en ese pre-form no debo sacar el formulario principal, cerrando la aplicación. ¿por qué no puedo hacer que la pantalla "pre" sea la principal y esconderla? porque no se que pasa pero el comportamiento de las ventanas en clx es ligeramente diferente y en cuanto la aplicación pierde el foco al volver sale siempre la pantalla "pre". Y si hago un hide desaparece de la barra de tareas. El truco del Activate me da siempre una excepcion. El truco de los mensages ya lo habia usado antes y funciona muy bien pero... estamos en una aplicación CLX y aqui son QMessages y yo no he conseguido poner un mensage a la cola, siempre me saltan de inmediato. Ahora voy a intentar plan a) enredar en dpr (Application.Initialize...) a ver si consigo mostrar la pre y cerrar la aplicación si le dan a salir. plan b) poner un timer, activarlo en el OnShow y cerrar el form (¡¡peazo de plan b!!) ya os contaré |
#9
|
||||
|
||||
mmmm opción a:
probado y chuta
__________________
E pur si muove |
#10
|
||||
|
||||
Perfecto!
justo ayer por la tarde me salio lo mismo ^_^ para mi que me mandaste la solusión telepaticamente. Muchas Gracias a todos |
|
|
|