Entrar
¿Nuevo usuario? Inscribirme
DesarrolloDelphi · Desarrollo de Software en Borland Delphi
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés cambiar el orden de los mensajes. Simplemente hacé clic en el enlace de columna fecha. Tus preferencias se guardarán, por lo tanto no necesitarás hacerlo otra vez cuando vuelvas a entrar.

Mensajes

  Mensajes Ayuda
Avanzado
Forms MDI y ventanas hijas no duplicadas.   Lista de mensajes  
Responder | Reenviar Mensaje #6468 de 7334 |
Re: Forms MDI y ventanas hijas no duplicadas.

Hola Alex,

en tu método hay un problema fundamental y es que estás verificando si
'frmHijo' está asignado, pero esa es una variable local no inicializada.
O bien hacés 'frmHijo' un atributo de la clase TForm1, con lo cual
tendrías que quitar la declaración de variable y todo Ok.
O buscás entre las pantallas hijas de Form1:

begin
frmHijo:=nil;
for i:=0 to MDIChildCount-1 do
begin
if MDIChildren[i] is TfrmHijo then
begin
frmHijo:=MDIChildren[i];
break;
end;
end;
if Assigned( frmHijo ) then
begin
if frmHijo.WindowState = wsMinimized then
frmHijo.WindowState := wsNormal
else
frmHijo.BringToFront;
end
else
frmHijo := TfrmHijo.Create( Application );
end;

--- En DesarrolloDelphi@..., "Alex" <animefanatico@...>
escribió:
>
> Hola a todos los del Foro,
>
> Hace unos dias que estoy luchando con un pedazo de codigo que es
de principiantes y la verdad es que no se porque no anda. La idea es
que tengo un formulario MDI el cual tiene formularios hijos, pero no
quiero que cree siempre un formulario hijo nuevo cada vez que lo
llamo, sino que quiero que si lo tengo minimizado lo restaure o bien,
si esta atras de otros formularios lo traiga al frente, en base a
esto, hice lo siguiente:
> implementation
> {$R *.dfm}
> uses ufrmHijo ;
> procedure TForm1.Button1Click(Sender: TObject);
> var
> frmHijo : TfrmHijo ;
> begin
> if Assigned( frmHijo ) then
> if frmHijo.WindowState = wsMinimized then
> frmHijo.WindowState := ws
> frmHijo.WindowState := wsNormal
> else
> frmHijo.BringToFront
> else
> frmHijo := TfrmHijo.Create( Application );
> end;
>
> Al formulario hijo, en el evento onclose, asigno la variable Action
:= caFree. Ahora cuando ejecuto el procedimiento, no me abre ninguna
ventana. Hay algo que estoy haciendo mal o me esta faltando algo?
>
> Agradezco la ayuda de antemano,
>
> Saludos,
> Alex.
>





Mar, 8 de May, 2007 11:35 am

dnabdala
Sin conexión Sin conexión
Enviar correo Enviar correo

Reenviar Mensaje #6468 de 7334 |
Desplegar mensajes Autor Ordenar por fecha

Hola a todos los del Foro, Hace unos dias que estoy luchando con un pedazo de codigo que es de principiantes y la verdad es que no se porque no anda. La idea...
Alex
animefanatico
Sin conexión Enviar correo
8 de May, 2007
12:57 am

Hola Alex, en tu método hay un problema fundamental y es que estás verificando si 'frmHijo' está asignado, pero esa es una variable local no inicializada. O...
David Abdala
dnabdala
Sin conexión Enviar correo
8 de May, 2007
11:37 am
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda