Ver Mensaje Individual
  #7  
Antiguo 10-06-2010
OscarBravo OscarBravo is offline
Miembro
 
Registrado: feb 2007
Posts: 23
Reputación: 0
OscarBravo Va por buen camino
Lo que pretendo al ocultar las barras de título de los formularios es hacer una aplicación parecida al explorador de Windows XP. (Del lado izquierdo puedes elegir cualquier opción y en el panel de la derecha muestra el contenido de la carpeta seleccionada en las opciones del panel izquierdo)[/font]
[FONT='Verdana','sans-serif']Claro que en mi aplicación pretendo mostrar los formularios o ventanas que el usuario seleccione, más no contenidos de carpetas. Para ello cloqué un TreeView alineado alLeft, en el formulario principal, el cual es un formulario MDI. Cuando el usuario hace clic en una de las opciones del TreeView, se crea un formulario de estilo fsMDIChild, de modo que puede abrir los formularios que sean necesarios (más de uno al mismo tiempo).

Asi Creo el/los formularios:
[FONT='Verdana','sans-serif']Utilizo una variable booleana (una por cada formulario) para controlar que cada formulario se cree una y solo una vez, en este caso la variable se llama bCreatedContratos.[/font]

Código Delphi [-]
If TreeViewMain.Selected.Text = 'Contratos' Then Begin
If Not bCreatedContratos Then TfrmContratos.Create(Self);
End;




En el evento Create del formulario coloco la variable en true (Así solo se crea una vez y para volverlo a crear debe ser cerrado previamente)


Código Delphi [-]
procedure TFrmContratos.FormCreate(Sender: TObject);
begin
FrmMain.bCreatedContratos := True;
end;




En el evento CLose del formulario la variable booleana la coloco en false

Código Delphi [-]
procedure TFrmContratos.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FrmMain.bCreatedContratos := False;
Action := CaFree;
end;





Es por eso que le quito las barras de titulo a los formularios (Creo que así logro simular el explorador de Windows XP), el problema es que si los formularios no tienen barras de titulo tampoco pueden tener la opción de minimizar y por ende cuando un formulario se abre Deja los otros formularios que están abiertos “Escondidos” y no es posible volver a trabajar con ellos, porque el último formulario abierto no deja hacer clic en los anteriormente abiertos, la idea es volver a hacer clic en la opción respectiva del treeview para volver a ver el formularioque ya esta creado, pero no se como traerlo al frente para continuar trabajando con él
TRABAJÉ también CON FRAMES.
Intenté también utilizando Frames previamente creados y arrastrados al formulario principal, es decir cada formulario sería reemplazado con un frame. Una vez colocados los frames en el formulario principal solo tengo que esconder los que no van a ser utilizados y mostrar solo el que será utilizado ( Frame actual). Pero me parece muy engorroso estar ocultando / mostrando todos los frames.

¿Conoce alguien alguna manera mas sencilla de hacer todo esto?

Responder Con Cita