Jump to content


Photo

CategoryPanel


  • Please log in to reply
No replies to this topic

#1 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 832 posts
  • LocationMisiones, Argentina

Posted 03 March 2014 - 03:02 PM

¿Alguien conoce un método para hacer que los CategoryPanels no seleccionados se cierren al seleccionar alguno?
Es decir:
En un grupo de CategoryPanels, cerrar aquellos que no fueran seleccionados, mientras que el último seleccionado permanece abierto.

Yo uso esto, por si a alguien le sirve:



delphi
  1. procedure TForm1.cpCollapseExpand(Sender: TObject);
  2. var
  3.   I: Integer;
  4. begin
  5.   for I:= cpgMenu.Panels.Count-1 downto 0 do
  6.     if TCategoryPanel(cpgMenu.Panels[I]).Name = TCategoryPanel(Sender).Name
  7.       then TCategoryPanel(cpgMenu.Panels[I]).Expand
  8.       else TCategoryPanel(cpgMenu.Panels[I]).Collapse;
  9. end;



cpgMenu es de la clase TCategoryPanelGroup,
Capturando el evento OnExpand de cada CategoryPanel del grupo y agregando la referencia al método de arriba funciona,
pero debería exisitr alguna forma más automática, con alguna propiedad, supongo.
Ya que esto se me hace casi fuerza bruta. :@

Tanto Collapse como Expand primero consultan por su estado actual antes de proceder al colapso o expansión del panel, eso hace que ciclo for no se haga lento. ;)
  • 0




IP.Board spam blocked by CleanTalk.