FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cómo cerrar una forma en el OnShow Event?
Saludos...
Tengo una forma en la que hago una serie de validaciones en el evento OnShow (ejem. Abrir una serie de query's) y quisiera que, en caso de no cumplirse alguna de ellas cancelar dicho evento y retornar a la forma que hizo la llamada original. He intentado con el Close, Abort e inclusive el Cancel, pero ninguno de ellos me arroja resultados satisfactorios, pues, en el caso del Close, me arroja un error en donde me indica que es imposible modificar el atributo Visible en un OnShow o un OnHide Event... Anexo parte del código para iilustrar mejor la situación y reducir los esfuerzos de entendimiento {********************************} procedure TfrmExpedienteAduanal.FormShow(Sender: TObject); begin inherited; Caption := rSoftwareData.sNameWithVersion + ' | Expedientes'; with dmExpAduanal do if not ActiveDBISAMSession(SessionExpAduanal, rCompanyData.sTemporalPath) or not OpenDBISAMConnection(dbExpAduanal, rCompanyData.sApplDataPath, True) or not OpenDBISAMConnection(dba2, rCompanyData.sA2DataPath, True) or not OpenExpedienteAduanal then Close else sSearchField := 'idExpediente'; end; {********************************} Agradezco la ayuda que me puedan suministrar |
#2
|
||||
|
||||
¿¿No sería mejor hacer las validaciones antes de disparar el show??
Una de las tantas formas posibles, es crear un método con el solo porpósito de la validación, y llamarlo antes del Show para ver si se puede mostrar este form. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
pues discutimos esto hace poco en este hilo: http://www.clubdelphi.com/foros/showthread.php?t=11348
básicamente puedes: -mandar un mensaje a la ventana para que se cierre. -implementar una interface -verificar antes de hacer el show! (esta es la mejor, sin duda). |
|
|
|