Ver Mensaje Individual
  #4  
Antiguo 10-11-2016
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.

Yo también pienso que no va a ser fácil conseguir un componente que haga ese trabajo... Pero vamos que con un poquito de trabajo y algunos paneles se logra un esbozo sin problemas:


Y el código es lo menos fatigoso:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to PopupMenu1.Items.Count-1 do
    PopupMenu1.Items[i].Tag := 100 + i;
end;

procedure TForm1.MenuItemClick(Sender: TObject);
var
  pn: TPanel;
begin
  pn := TPanel(PopupMenu1.PopupComponent);
  case TMenuItem(Sender).Tag of
    100: pn.Color := clLime;
    101: pn.Color := clYellow;
    102: pn.Color := clRed;
  end;
  pn.Tag := TMenuItem(Sender).Tag;
end;

// (Esto si deseas que funcione con click izq. también )
procedure TForm1.PanelClick(Sender: TObject);
begin
  PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
  PopupMenu1.PopupComponent := TPanel(Sender);
end;

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 10-11-2016 a las 14:44:54.
Responder Con Cita