Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Agrupar un StringGrid como un TreeView (https://www.clubdelphi.com/foros/showthread.php?t=61608)

Elite237 13-11-2008 23:50:29

Agrupar un StringGrid como un TreeView
 
Hola, a todos. Tengo una duda.¿Cómo puedo hacer que un StringGrid se agrupe?osea algo similar al componente TreeView, solo que sea en el StringGrid.Una idea de como quiero seria,le doy un clic a un titulo de un tema y que me despliegue o muestre los subtitulos de ese tema.Que sea debajo del registro principal, en mi caso debajo del titulo, que se muestren los subtitulos.

Un ejemplo:
Mi StringGrid en su estado normal:
Código Delphi [-]
 
----------+
Titulos     |
----------+
samsonite |
----------+
HP           |
----------+
Epson       |
----------+
Ahora cuando de un clic sobre un un titulo:
Código Delphi [-]
 
---------+
Titulos     |
---------+
samsonite|
---------+
mochilas  |
---------+
maletas   |
---------+
maletines |
---------+
HP          |
---------+
Impresora|
---------+
Epson     |
---------+
Saludos

Caro 14-11-2008 04:47:36

Hola, el StringGrid no tiene los procedimientos expand y collapse que tiene el TreView, si quieres hacer algo parecido tendras que hacerlo tu. Lo que se me ocurre es que utilices la propiedad RowHeights de las columnas que quieras ocultar, un ejemplo.

Código Delphi [-]
procedure TForm1.StringGrid1DblClick(Sender: TObject);
begin
 if StringGrid1.Row=2 then
  if StringGrid1.RowHeights[StringGrid1.Row+1]<>0 then
   begin
    StringGrid1.RowHeights[StringGrid1.Row+1] := 0;
    StringGrid1.RowHeights[StringGrid1.Row+2] := 0;
   end
  else
   begin
    StringGrid1.RowHeights[StringGrid1.Row+1] := 25;
    StringGrid1.RowHeights[StringGrid1.Row+2] := 25;
   end;
end;

Saluditos

Lepe 14-11-2008 09:35:32

Hay un componente que es exactamente lo que pides, un Treeview + Grid, pero es algo complejo de usar, se llama VirtualStringTree, en ese link tienes unas capturas de lo que puede hacerse con él.

Saludos

Neftali [Germán.Estévez] 14-11-2008 09:59:03

¿Hay alguna obligación de hacerlo con StringGrid?
Hay otros componentes que están pensados para hacer lo que necesitas, ¿porqué hacerlo con el que no es adecuado?
Seguramente el resultado te va allevar más trabajo y va a quedar peor.
¿Es una restricción impuesta?

Elite237 14-11-2008 19:09:47

Gracias Caro por tu ayuda..es muy buena, no se me habria ocurrido, empezare a probarla en mi proyecto.Lepe gracias por tu sugerencia y Neftali..mi jefe quiere que asi se haga, por eso no uso el treeview.Saludos a todos.


La franja horaria es GMT +2. Ahora son las 17:56:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi