Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cómo cerrar una forma en el OnShow Event? (https://www.clubdelphi.com/foros/showthread.php?t=12180)

pepix 08-07-2004 14:50:18

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

delphi.com.ar 08-07-2004 15:36:40

¿¿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!

ruina 08-07-2004 17:09:37

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).


La franja horaria es GMT +2. Ahora son las 02:03:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi