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;
procedure TForm1.PanelClick(Sender: TObject);
begin
PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
PopupMenu1.PopupComponent := TPanel(Sender);
end;
Saludos