Ver Mensaje Individual
  #2  
Antiguo 14-10-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.290
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hay que añadir la categoría (TCategoryButtons) y luego los botones a cada categoría (TButtonItem).
Utilizando un código como este, se condigue lo que necesitas. El tuyo puede variar por las tablas o campos, pero será muy parecido.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
 LPanel   : TCategoryPanel;
 Cat      : TCategoryButtons;
 npaneles : Integer;
 i, j     : Integer;
 but      : TButtonItem;
begin
  QryCalculos.SQL.Clear;
  QryCalculos.SQL.Text := 'select * from (select distinct captionGRUPO from Tabla1) T';

  QryCalculos.Open;
  npaneles := QryCalculos.RecordCount;

  for i := 1 to npaneles do begin
      LPanel:=TCategoryPanel.Create(micategorygroup);
      LPanel.Caption:= Trim(QryCalculos.FieldByName('captionGRUPO').AsString);
      LPanel.PanelGroup:= micategorygroup;
      LPanel.TabOrder  := i;
      LPanel.Name := Trim('Grupo' + i.ToString); // Por ahora obtengo error de nombre ya existe pero luego lo arreglo XD

      Cat := TCategoryButtons.Create(lPanel);
      Cat.Name := 'Category' + i.ToString;
      cat.Parent := LPanel;
      Cat.Align := alClient;
      cat.ButtonWidth := 500;

      QryButtons.Close;
      QryButtons.SQL.Clear;
      QryButtons.SQL.Text := 'select * from tabla1 WHERE captionGrupo=:grupo';
      QryButtons.Parameters.ParamByName('grupo').Value := QryCalculos.FieldByName('captionGRUPO').AsString;
      QryButtons.Open;

      LPanel.Height := 50 * (QryButtons.RecordCount);

      // Para cada Grupo, crear los botones...
      for j := 0 to (QryButtons.RecordCount -1) do begin
        // Crear el boton
        but := TButtonItem.Create(Cat.Categories.Add.Items);
        but.Caption := QryButtons.FieldByName('captionLabel').AsString;

        QryButtons.Next;
      end;
      QryCalculos.Next;
    end;
end;

El resultado serán las categorías y los botones.


__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita