Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda Con Un Submenu Grafico (https://www.clubdelphi.com/foros/showthread.php?t=75788)

ggram2 19-09-2011 20:47:48

Ayuda Con Un Submenu Grafico
 
Buenas Tardes Amigos del Foro

Quisiera hacer que un PopupMenu en lugar pulsar click derecho se desplegara el submenu con solo apuntarle con el puntero del mouse. si no es un popupmenu cualquier otra opcion donde pueda poner varias opciones a ejecutar (submenu), me gustaria que fuera un menu bien grafico.

si existen respuesta para alguna pregunta similar les pido de ante mano mis disculpas porque no las he hallado.

Muchas gracias a quien me pueda ayudar

ecfisa 19-09-2011 22:35:48

Cita:

Quisiera hacer que un PopupMenu en lugar pulsar click derecho se desplegara el submenu con solo apuntarle con el puntero del mouse.
Hola ggram2.

Te hago una consulta por que hay algo de lo que buscas hacer que no me queda claro: ¿ Cuando el mouse apunte a que cosa ?
Es decir, ¿ Al form, a un determinado control, una imágen, ... ?

Un saludo.

ggram2 20-09-2011 00:16:32

Muchas gracias por su Interes

La idea es en un Form poner varios botones (SpeedButton)
y cada uno tiene un submenu de opciones asociadas al proceso principal
pero en lugar de darle click con el boton derecho para ver el submenu
que con solo apuntar con el puntero del mouse despliegue el submenu

por ejemplo:

Boton1 (Caption = "INGRESOS EN EFECTIVO")
y en el submenu dice :
1.Crear nuevos Clientes
2.Definir tipos de pagos
3.Consulta de Movimientos

si pudirea hasta desplegar una imagen que bueno seria

ecfisa 20-09-2011 03:54:15

Hola.

Utilizando TSpeedButton y TPopupMenu algo que se me ocurre es:
Código Delphi [-]
...
type
  TSpeedButton = class(Buttons.TSpeedButton)
    procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
  end;
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    PopupMenu1: TPopupMenu;
      MenuItem11: TMenuItem;
    ...
    PopupMenu2: TPopupMenu;  
      MenuItem21: TMenuItem;
    ...
    PopupMenu3: TPopupMenu;
      MenuItem31: TMenuItem;
    ...
    ImageList1: TImageList;
    ImageList2: TImageList;
    ImageList3: TImageList;
    ...
    procedure MenuItemClick(Sender: TObject);
    ...
  private
  public
  end;
...
implementation

{ TSpeedButton OnMouseEnter }
procedure TSpeedButton.CMMouseEnter(var Msg: TMessage);
var
  PopUpM: TPopupMenu;
begin
  case Tag of   // (Self.Tag) Tag del TSpeedButton en que se ingresó
    1: PopUpM:= Form1.PopupMenu1;
    2: PopUpM:= Form1.PopupMenu2;
    3: PopUpM:= Form1.PopupMenu3;
    //...
  end;
  PopUpM.Popup(ClientOrigin.X + 10, ClientOrigin.Y+Top);
end;

{ Form1 OnCreate }
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Se puede asignar desde el ObjectInspector en diseño
  SpeedButton1.Tag:= 1;
  SpeedButton2.Tag:= 2;
  SpeedButton3.Tag:= 3;
  ...
end;

{ MenuItem1 OnClick (en la prueba asignado a todos los MenuItems) }
procedure TForm1.MenuItemClick(Sender: TObject);
begin
   ShowMessage(TMenuItem(Sender).Name); // Muestra el nombre del Item seleccionado como ejemplo
end;
...
Las imágenes se visualizan asociando los TImageList a los TPopupMenu.

Un saludo.

ggram2 20-09-2011 16:48:36

Muchas gracias

Probando el evento "MouseEnter" al llamar el Propiedad "popup" Funciona como quiero en una parte,
y no esta completo porque el foco del cursor se queda en el submenu
toca hacerle click en cualqueir otra parte de la pantalla para el submenu desaparezca, y lo que quisiera es que al salir el puntero del area del SpeedButton1 y entrar en otro Speedbutton2 despliegue el submenu de ese boton donde este apuntando con el muse.

mil gracias por su tiempo.


La franja horaria es GMT +2. Ahora son las 00:01:18.

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