Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-03-2009
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Diseño menu no cambia en tiempo ejecución

Muy buenas a todos, tengo un pequeño problema al crear un menu en tiempo de ejecución. Os explico brevemente el funcionamiento.
Cuando un usuario se loga comprueba en la BD que tipo de menú tiene asignado. Este menú ha sido diseñado previamente con otra aplicación, la cual guarda en una BD el aspecto del menu, los items y las acciones.

Cuando se crea el menu, tanto los items y las acciones me las crea perfectamente, pero sin embargo el aspecto del menú no cambia nada.

Uso el componente BarMenu de BlueCave, http://www.bluecave.net/products/barmenus/.

Os adjunto el codigo de como cambio el aspecto del menú, por si hay algo que estoy olvidando.

Saludos y gracias.

Código Delphi [-]
mnuPrincipal:= TBCBarMainMenu.create(Self);
      with mnuPrincipal do
      begin
      MenuStyle:= msWindowsXP;
      Bar.Side:= sLeft;
      Bar.BarCaption.Visible:= True;
      Bar.BarCaption.Direction:= dDownToUp;
      Bar.BarCaption.Caption:= ModDatos1.CDSComun5.fieldbyname('caption').AsString;
      Bar.GradientStart:= StringtoColor(ModDatos1.CDSComun5.fieldbyname('color1').AsString);
      Bar.GradientEnd:= StringtoColor(ModDatos1.CDSComun5.fieldbyname('color2').AsString);
      Bar.GradientStyle:= gsHorizontal;
      Separators.SeparatorStyle:= ssShortLine;
      Separators.GradientStart:=  StringtoColor(ModDatos1.CDSComun5.fieldbyname('color1').AsString);;
      Separators.GradientEnd:= StringtoColor(ModDatos1.CDSComun5.fieldbyname('color2').AsString);
      end;
frmPrincipal.Menu:= mnuPrincipal;
Responder Con Cita
  #2  
Antiguo 29-03-2009
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 21
nuk3zito Va por buen camino
Buenas tardes amigo....

Hace algunos años llegué a utilizar ese componente y me ví con el mismo problema. La solución es utilizar los métodos "BeginUpdate" y "EndUpdate" para que los cambios se vean reflejados en tiempo de ejecución.
Lo que no estoy 100% seguro es el nombre de esos métodos (puede que hayan cambiado, ya no dispongo de código fuente disponible para confirmarlo) pero suponiendo que así se llaman, a tu código solo le falta quedar como sigue:

Código Delphi [-]
mnuPrincipal:= TBCBarMainMenu.create(Self);
with mnuPrincipal do
begin
  BeginUpdate();
  MenuStyle:= msWindowsXP;
  Bar.Side:= sLeft;
  Bar.BarCaption.Visible:= True;
  Bar.BarCaption.Direction:= dDownToUp;
  Bar.BarCaption.Caption:= ModDatos1.CDSComun5.fieldbyname('caption').AsString;
  Bar.GradientStart:= StringtoColor(ModDatos1.CDSComun5.fieldbyname('color1').AsString);
  Bar.GradientEnd:= StringtoColor(ModDatos1.CDSComun5.fieldbyname('color2').AsString);
  Bar.GradientStyle:= gsHorizontal;
  Separators.SeparatorStyle:= ssShortLine;
  Separators.GradientStart:=  StringtoColor(ModDatos1.CDSComun5.fieldbyname('color1').AsString);;
  Separators.GradientEnd:= StringtoColor(ModDatos1.CDSComun5.fieldbyname('color2').AsString);
  EndUpdate();
end;
frmPrincipal.Menu:= mnuPrincipal;
__________________
Tiempo y ocasión acontecen a todos!

Última edición por nuk3zito fecha: 29-03-2009 a las 03:30:11.
Responder Con Cita
  #3  
Antiguo 29-03-2009
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Mañana en cuanto llegue a la oficina lo pruebo y te digo algo.
Gracias de antemano.
Responder Con Cita
  #4  
Antiguo 30-03-2009
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Funciona perfectamente, muchas gracias.

Saludos.
Responder Con Cita
  #5  
Antiguo 30-03-2009
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 21
nuk3zito Va por buen camino
Thumbs up

Que bien!

Oye, por cierto, entré a la pagina de esos componentes y veo que no han actualizado desde hace un buen. Como quiera, esos menús siguen estando muy muy bonitos.

Saludos.
__________________
Tiempo y ocasión acontecen a todos!
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
Crear menú en tiempo de ejecución FerCastro Varios 6 17-08-2016 23:24:08
Diseño de reportes en tiempo de ejecución jzginez Impresión 2 17-04-2007 16:46:10
Diseño en tiempo de ejecucion Nelson Alberto Impresión 2 26-01-2006 09:34:12
Como mostrar el cuadro de dialogo de diseño de Tchart en tiempo de ejecución? JuanErasmo Gráficos 0 21-12-2005 20:33:22
En tiempo de ejecución pinchando en la parte de arriba de la ventana me cambia de pan Sayuri Varios 2 11-08-2005 10:22:42


La franja horaria es GMT +2. Ahora son las 08:08:07.


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