Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Menu Ventanas - MDIChild (https://www.clubdelphi.com/foros/showthread.php?t=53058)

JXJ 08-02-2008 21:17:05

Menu Ventanas - MDIChild
 
Hola..

no saben como puedo hacer un programa mdichild.
a mano.

Sin usar la plantilla que tiene delphi para aplicaciones mdi

el asunto es que ya tengo mi mdi form y la form padre.
con sus propiedades, adecuadas, y con el boton nueva ventana, todo bien. pero no se como hacer el menu. windows
donde cada mdi child se agrega un item y este se puede seleccionar
y se activa la mdichild que le corresponde
e igualmente cuando se cierran ventanas mdichild. esta se quitan del menu windows

gracias

Lepe 08-02-2008 22:41:10

El mdiform tiene en cuenta las ventanas hijas que se abren, así que al hacer clic en el menú "Windows" (el evento onclic de ese menú) haces un bucle que recorra todas las hijas.

el código sale más rápido que la explicación:
Código Delphi [-]
var mnu:TmenuItem;
for i:=0 to mdichildcount -1 do
begin 
   mnu := mnuWindows.Items.Add;
   mnu.Caption := mdichildren[i].Caption
   mnu.tag := i; // para saber el que se pulsó.
  mnu.onclick := miRutina;
end;


procedure TForm1.miRutina(sender:tobject);
begin
   mdichildren[TmenuItem(sender).tag]. BringtoFront;
  mnuWindows.items.Clear;
end;

Saludos

keyboy 09-02-2008 01:57:17

Delphi facilita la creación y uso de este menú sin tener que codificarlo a mano.

Para ello hay que añadir el menu "Windows" (o como queramos llamarle) al MainMenu y asignarlo a la propiedad WindowMenu del formulario principal (puede hacerse en el inspector de objetos).

Automáticamente Delphi añade o quita elementos del menú indicado según se abran o cierren ventanas. Asímismo, los elementos de dicho menú ya tienen programada la activación de la ventana correspondiente cuando se selecciona uno de ellos.

La única restricción que he visto, es que el menú "Windows" que usemos no puede estar vacío, esto es, debe tener por lo menos un item además de los que Delphi va agregando. No es una gran restricción ya que podemos poner operaciones usuales como la de poner en mosaico o cascada las ventanas (métodos Tile y Cascade del formulario principal).

Bye

JXJ 09-02-2008 02:34:32

gracias

Lepe

no entiendo por que tu explicacion no me funciona. todo parece bien.
pero me salen errores del indice.. voy a revisar de nuevo

Lepe 09-02-2008 13:45:54

Lo hice de memoria, realmente no uso ese tipo de menú.

Desde luego la opción de keyboy es más acertada ;). Gracias por el tip.

Saludos


La franja horaria es GMT +2. Ahora son las 00:33:35.

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