PDA

Ver la Versión Completa : Agrupar un StringGrid como un TreeView


Elite237
13-11-2008, 23:50:29
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:


----------+
Titulos |
----------+
samsonite |
----------+
HP |
----------+
Epson |
----------+



Ahora cuando de un clic sobre un un titulo:


---------+
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.


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 (http://www.soft-gems.net/index.php?option=com_content&task=view&id=16&Itemid=33), 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.