PDA

Ver la Versión Completa : Sobre los form MDI


quake2420
12-05-2005, 11:27:34
Hola amigos, necesito que em echeis una manita con lka siguiente duda.
Lo que quiero hacer es lo siguiente:
Primero
Estoy creandouna aplicación, la cual, tiene un form principal y cuatro ventanas en forma (form child mdi). Lo que quiero hacer es cuando se ejecute la aplicacion solo se visualize una de ellas.
Segundo:
Cuando quiera visualizar el resto de ventanas, lo hago medianteun combobox, con cuatro opciones, entonces segun la opcion que eliga, lo que queria hacer seria que desapareciera en la que estaba y que apareciera la que elegido en el combobox
Gracias y un saludo

Neftali [Germán.Estévez]
12-05-2005, 11:39:45
Primero
Estoy creandouna aplicación, la cual, tiene un form principal y cuatro ventanas en forma (form child mdi). Lo que quiero hacer es cuando se ejecute la aplicacion solo se visualize una de ellas.
En las opciones del proyecto, hay un lugar (Auto-create forms) donde defines qué forms se crean al principio; Elimina todos, excepto los que quieres que aparezcan al iniciar.

Segundo:
Cuando quiera visualizar el resto de ventanas, lo hago medianteun combobox, con cuatro opciones, entonces segun la opcion que eliga, lo que queria hacer seria que desapareciera en la que estaba y que apareciera la que elegido en el combobox
Para ocultar la que tengas puedes utilizar la propiedad MDIChildCount. Búscala en la ayuda de Delphi y verás que hay un ejemplo justo de lo que necesitas.

quake2420
12-05-2005, 11:57:29
Mo he entendido muy bien lo de ocultar MDI ya que lo que debo hacer es cuando eligo una de las opciones del Combobox es ocultar la activa y mostrar la que he elegido, he mirado la opcion MDIChildCount pero no la entiendo, si pudierais enseñarme algun ejemplo os lo agrecederia
Gracias

Neftali [Germán.Estévez]
12-05-2005, 13:29:56
Éste código:

var
I: Integer;
begin
with Form1 do
for I := MDIChildCount-1 downto 0 do
MDIChildren[I].Close;
end;

o en su defecto éste

var
I: Integer;
begin
with Application.MainForm do
for I := MDIChildCount-1 downto 0 do
MDIChildren[I].Close;
end;


te cerrará todos los forms MDI que tengas; Sólo falta que después visualices el que quieras.