Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como crear menu dinamico para ventanas creadas (https://www.clubdelphi.com/foros/showthread.php?t=22965)

marcoev 02-07-2005 03:26:42

Como crear menu dinamico para ventanas creadas
 
Que tal, mi dilema es el siguiente:

lo que tengo es un programa con un menu en una ventana tipo Mdi, y todas las demas ventanas se crean como MDIChild, mi problema es que me gustaria poder agregar en la opcion del menu Ventanas, el nombre de cada ventana que este creada, por si se crea otra y queda encima de la otra, desde ese menu se pueda seleccionar cualquier ventana para ponerla como activa. algo asi como word crea un nuevo documento y desde el menu de opciones puedes escoger el documento que quieras tener activo.

gracias por sus comentarios.

Crandel 02-07-2005 07:22:04

Hace un par de días se realizo una pregunta en el foro sobre la creación de menu dinámico, y se explico la forma de resolverlo, buscalo.

marcoev 02-07-2005 20:24:05

Ya habia visto el codigo que mencionas
Cita:

Hola, la idea es ir creando objetos del tipo TMenuItem y modificando sus atributos.

Algo así:


Código Delphi:
var
i: integer;
NewItem: TMenuItem;
begin
MainMenu.Items.Clear;

for i := 1 to 4 do
begin
NewItem := TMenuItem.Create(MainMenu);
MainMenu.Items.Add(NewItem); // no se como se le indica la posición
// exacta, sólo lo hice con PopupMenu
case j of
1: begin
NewItem.Caption := 'aaaa';
NewItem.ImageIndex := 1;
NewItem.OnClick := EventoClick1;
end;
2: begin
NewItem.Caption := 'bbbbb';
NewItem.ImageIndex := 2;
NewItem.OnClick := EventoClick2;
end;
3: begin
NewItem.Caption := 'ccccc';
NewItem.ImageIndex := 3;
NewItem.OnClick := EventoClick3;
end;
4: begin
NewItem.Caption := 'ddddd';
NewItem.ImageIndex := 4;
NewItem.OnClick := EventoClick4;
end;
end;
end;
end;
pero, no veo como manejar los eventos, no me imagino como, un poco mas de ayuda por favor, y que sea mas dinamico, no que se base en un numero determinado de iteraciones, gracias!

vtdeleon 02-07-2005 21:06:20

Saludos

El evento se asigna aqui:
Código Delphi [-]
 NewItem.OnClick := EventoClick1;
Has un procedimiento OnClickNoseQue(serder:Tobjet); y lo asignas

marcoev 02-07-2005 21:26:27

muchas gracias por responder, pero la verdad no soy muy diestro en esto de la programacion, y no tengo idea de como hacer eso... disculpen las molestias, pero, alguien tiene un ejemplo?

Crandel 02-07-2005 23:55:52

Si tuviste algún otro problema en la instalación y pudiste resolverlo, por favor comentalo aquí, estoy haciendo una pequeña recompilación de los problemas que tuve para instalar Kylix y que tuvimos en maquinas de amigos para armar un pequeño tutorial.

Gracias

roman 03-07-2005 04:00:44

Cita:

Empezado por Crandel
Si tuviste algún otro problema en la instalación y pudiste resolverlo, por favor comentalo aquí, estoy haciendo una pequeña recompilación de los problemas que tuve para instalar Kylix y que tuvimos en maquinas de amigos para armar un pequeño tutorial.

:confused:

¿No te equivocaste de hilo?

// Saludos

roman 03-07-2005 04:07:08

Cita:

Empezado por marcoev
desde ese menu se pueda seleccionar cualquier ventana para ponerla como activa. algo asi como word crea un nuevo documento y desde el menu de opciones puedes escoger el documento que quieras tener activo.

Delphi nos facilita la creación de este menú. En el formulario principal ve al inspector de objetos a la propiedad WindowMenu y ahí selecciona tu menú Ventanas. Este menú ventanas puede incluso ser un submenu pero al parecer debe tener por lo menos un item definido por ti. Hecho esto, Delphi automáticamente pone la lista de las ventanas abiertas en el menú, mediante la cual puedes escoger la que deseas activar.

// Saludos

Crandel 03-07-2005 04:59:38

Oops, perdón me equivoque, estaba por contestar este hilo y otro al mismo tiempo se ve que termine escribiendo en cualquier lado, perdón.

marcoev 05-07-2005 20:54:07

excelente aporte Roman, pues es mas sencillo de lo que pensaba, muchisimas gracias!


La franja horaria es GMT +2. Ahora son las 06:12:56.

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