Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-07-2013
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 291
Poder: 21
elrayo76 Va por buen camino
TMainMenu desde código

Necesito que me indiquen como se puede crear un MainMenu completo desde código. Tengo una pequeña idea de como hacerlo, pero lo que mas me esta costando es encontrar la forma de poder añadir mas de un submenú.

En mi aplicación tengo algunos menú que tienen 1 submenu, otros que tienen 2 y algunos que tienen mas pero no mucho mas. Por eso lo que quiero es poder crear algo que me facilite la creación de estos menú.

Las opciones generalmente las tomo de la base de datos, aunque ese no es el problema, ya que cada submenú tiene indicado cual es el padre y cada opción también.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #2  
Antiguo 29-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por elrayo76 Ver Mensaje
Necesito que me indiquen como se puede crear un MainMenu completo desde código.
...
Hola elrayo76.

Un ejemplo básico de como crear por código, un mainmenu, la barra de menu, ítems y subítems:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  mm : TMainMenu;
  mt, mi, ms : array of TMenuItem;
  i, j ,k: Integer;
begin
  // MainMenu
  mm := TMainMenu.Create(Self);

  // Barra de menu
  for i := 0 to 2 do
  begin
    SetLength(mt, Length(mt) + 1);
    mt[i] := TMenuItem.Create(mm);
    mt[i].Caption := 'Titulo' + IntToStr(i + 1);
    mm.Items.Add(mt[i]);
  end;

  // Items
  for i := 0 to 2 do
    for j := 0 to 4 do
    begin
      SetLength(mi, Length(mi) + 1);
      mi[j] := TMenuItem.Create(mm);
      mi[j].Caption := 'Item' + IntToStr(j + 1);
      mm.Items[i].Add(mi[j]);
    end;

  // SubItems
  for i := 0 to 2 do
    for j := 0 to 4 do
      for k := 0 to 2 do
      begin
        SetLength(ms, Length(ms) + 1);
        ms[k] := TMenuItem.Create(mm);
        ms[k].Caption := 'SubItem' + IntToStr(i + 1);
        mm.Items[i].Items[j].Add(ms[k]);
      end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 29-07-2013
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 291
Poder: 21
elrayo76 Va por buen camino
ecfisa, esta muy bien lo que pones. Pero tengo una duda con respecto a los subitems.

Como harías para agregar más subitems sin necesidad de hace otro ciclo para los nuevos subitems. Mira que un menu puede tener varios subitems que a su vez son contenedores de otros subitems. Además lo que quiero hacer es algo mas genérico porque no se cuantos niveles pueden haber en el manú. Lo que se que no serán muchos porque los limitaré para no hacer interminable la búsqueda de una opción.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #4  
Antiguo 29-07-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 21
ozsWizzard Va por buen camino
Mucha gente lo desaconseja pero lo más genérico que se me ocurre para crear un algoritmo que cree "n" niveles es la recursividad.
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
  #5  
Antiguo 29-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ozsWizzard Ver Mensaje
Mucha gente lo desaconseja pero lo más genérico que se me ocurre para crear un algoritmo que cree "n" niveles es la recursividad.
Hola ozsWizzard.

No veo por que habrían de desaconsejarlo... Yo creo que estas en lo correcto. Si no se conoce la profundidad y niveles que puede alcanzar, la recursividad es la solución natural para este caso.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 29-07-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 21
ozsWizzard Va por buen camino
Me lo han comentado compañeros algunas veces. Yo pienso como tú, conste
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cascade() sin TMainMenu Diego827 Varios 1 19-10-2011 02:17:45
color TMainMenu VRO OOP 0 12-06-2008 17:45:21
TmainMenu no en top del form jonmendi OOP 1 14-04-2008 17:19:53
!TmainMenu Desplegado Carlosguiland OOP 1 09-11-2004 19:28:11
como vincular .dbf en acccess por codigo? o como acceder a ellas desde desde .mdb orfeo Conexión con bases de datos 0 24-06-2004 15:35:21


La franja horaria es GMT +2. Ahora son las 20:47: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
Copyright 1996-2007 Club Delphi