Ver Mensaje Individual
  #4  
Antiguo 20-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 20-09-2011 a las 09:38:59. Razón: Agregar comentarios
Responder Con Cita