Delphi - Pregunta sobre Form

 
Vista:

Pregunta sobre Form

Publicado por Ariel (61 intervenciones) el 28/10/2005 16:52:51
Hola a todos

tengo una pregunta

trabajo con un Form fsMDIForm llamado FrmMenu
y varios Form fsMDIChild.

cuando llamo a un form, lo hago asi:

Application.CreateForm(TFrmTransito, FrmTransito);
FrmTransito.Show;

y para cerrar el formchild, hago esto.

procedure TFrmImportaciones.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
action:=caFree;
end;

mi consulta es como saber si este form FrmTransito, ya esta abierto, para que
no se abra otro formulario FrmTransito.

gracias....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pregunta sobre Form

Publicado por Delfino (1216 intervenciones) el 29/10/2005 07:42:21
if not Assigned(FrmTransito) then
// abrir form FrmTransito .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta sobre Form

Publicado por Ariel (61 intervenciones) el 02/11/2005 23:06:23
Hola Delfino.

hice lo q me dijiste, pero no me funciona

el FrmTransito es un MDICHILD.

if not Assigned(FrmTransito) then
begin
Application.CreateForm(TFrmTransito, FrmTransito);
FrmTransito.Show;
end
else
FrmTransito.BringToFront;

esto funciona de repente y derepente me da errores, algo de Abstract o Access Violation.

Lo que quiero esque del FrmMenu presiono un boton, llame al FrmTransito
despues puedo llamar a otro form, pero si presiono nuevamente el boton del transito, quiero q el form FrmTransito, pase adelante, no que se abra de nuevo.

para cerrar el FrmTransito, en el evento Close
Action:=caFree;

gracias....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta sobre Form

Publicado por Cuervo (262 intervenciones) el 03/11/2005 08:21:23
if not Assigned(FrmTransito) then // valor nulo, crea la instansia de la ventana
FrmTransito:=tFrmTransito.Create(Self)
else
FrmTransito.show; // todo lo contrario, ya esta creada, solo la muestra
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta sobre Form

Publicado por Delfino (1216 intervenciones) el 03/11/2005 11:19:46
Lo q dice cuervo es cierto, solo sobra el else, haz lo de esta manera:

if not Assigned(FrmTransito) then
Application.CreateForm(TFrmTransito, FrmTransito);
FrmTransito.Show;

para q evites todo tipo de errores en circunstancias raras te recomiendo ademas del evento OnClose (Actin := caFree) pongas en el evento OnDestroy del form lo siguiente :

FrmTransito := nil;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta sobre Form

Publicado por Ariel (61 intervenciones) el 03/11/2005 13:10:36
Muchas Gracias Delfino y Cuervo, por ayudarme.

utilize esto y me funciono super bien, es lo que necesitaba.

if not Assigned(FrmTransito) then
Application.CreateForm(TFrmTransito, FrmTransito);
FrmTransito.Show;

para q evites todo tipo de errores en circunstancias raras te recomiendo ademas del evento OnClose (Actin := caFree) pongas en el evento OnDestroy del form lo siguiente :

FrmTransito := nil;

Nuevamente Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar