[Lazarus-es] Consulta sobre TTreeView

Giuseppe Luigi Punzi Ruiz glpunzi en lordzealon.com
Dom Jul 5 03:05:23 CEST 2009


La verdad, ni idea,

Sólo se me ocurre que preguntes en la lista/foro en inglés a ver que  
te comentan. Lo mismo ya hay alguien trabajando en ello.

Un saludo.

El 04/07/2009, a las 15:16, ELMO CALATAYUD escribió:

> Buen Dia Amigos.
>
> Gracias por mantener esta lista que dia a dia nos entretien con  
> casos y conocimiento directamente en nuestro coreo electrónico. Debo  
> comentar que tengo un tiempo programando con Lazarus y me ha ido  
> bién. Sin embargo, siempre hay complicaciones que se van corrigiendo  
> poco a poco. Uno de estos casos  es el componente TTreeView.
>
> Tal como esta definido en los fuentes de lazarus, el componente   
> TTreeView permite mostrar el Arbol de TreeNodes pero estos TreeNodes  
> permiten mostrar solo una columna de datos. algo asi como
>
> >-- Raiz Arbol |
>                      |-- Nodo 1
>                      |-- Nodo 2
>                      |-- Nodo 3
>                      |-- Nodo 4 --|
>                                         |-- Sub Nodo 4-1
>                                         |-- Sub Nodo 4-2
>                                         |-- Sub Nodo 4-3
>
>
> En mi caso necesito portar un codigo de Kylix donde los TreeNode  
> pueden tener columnas adicionales que denomina subItems. la figura  
> es algo parecida a esto
>
> >-- Raiz Arbol |
>                      |-- Nodo 1    | Dato 1
>                      |-- Nodo 2    | Dato 2
>                      |-- Nodo 3    | Dato 3
>                      |-- Nodo 4 --| Dato 4
>                                         |-- Sub Nodo 4-1 | Dato 4-1
>                                         |-- Sub Nodo 4-2 | Dato 4-2
>                                         |-- Sub Nodo 4-3 | Dato 4-3
>
> Como ven hay una segunda columna de Datos aparte del Texto de Nodo,  
> esto da la facilidad de poder presentar datos adicionales respecto  
> del texto principal del Nodo y los alinea convenientemente, lo que  
> le da una forma elegante en presetación. Claro esta, podria  
> reemplazar el TTreeView por un TLIstView pero este componente no se  
> aprecia tam bien con el impacto que da el TTreeView y si concateno  
> ambos datos en una sola cadena para mostrarlo en la unica columna de  
> dato que permite el  TTreeView, entonces los datos no quedan  
> alineados como deben, perdiendo estetica en la presentación.
>
> He pensado en utilizar el componente VirtuelTreeView que parece  
> ideal para esto, pero aún no es del todo  estable sobre Linux.  
> Disculpen me olvidaba mencionar que estoy trabajando en  
> Multiplataforma y el Sistema Operativo principal de desarrollo es  
> Linux Debian.
>
> El codigo Kylix  es el siguiente:
>
> // Para la Raiz
> TreeNode1:=Tree1.Items.add(nil, dbBusca.Fields[0].AsString+'  
> '+dbBusca.Fields[1].AsString);
> // Dato Adicional de la Raiz
> Tree1.Items[Conta].SubItems.add(FormatFloat('0.00',Saldo));
>
> // Para los Nodos
> Tree1.Items.AddChild(TreeNode1,dbBusca.Fields[0].AsString+'  
> '+dbBusca.Fields[1].AsString );
> // Dato Adicional del Nodo
> Tree1.Items[Conta].SubItems.add(FormatFloat('0.00',Saldo));
>
> Mi Solución con Lazarus, hasta ahora va por:
> // Primero Junto todos los datos en una sola cadena y lo asigno a la  
> variable SaldoStr
> SaldoStr := dbBusca.Fields[0].AsString+'  
> '+PadRight(dbBusca.Fields[1].AsString),120) + ' ' +  
> PadLeft(FormatFloat('#,##0.00;(#,##0.00)',Saldo), 14);
>
> // Para la Raiz
> TreeNode1:=Tree1.Items.add(nil, SaldoStr);
>
> // Para los Nodos
> Tree1.Items.AddChild(TreeNode1, SaldoStr);
>
> Esta Solucion no me es satisfactoria del todo ya que me desalinea  
> mucho los datos, aun usando caracteres monoespace.
>
> ¿Sabe alguien de alguna variante del componente TTreeView o de alga  
> funcionalidad escondida que permita mostrar dos Columnas de Datos en  
> los String de los TreeNodes?.
>
> O de Plano, sera necesario derivar el compoente para agregarle la  
> funcionalidad deseada, si tienen ejemplos de esto ultimo tambien les  
> agradezco me comenten.
>
> Disculpen la molestia, sus sugerencias son bienvenidas.
>
> Saludos
>
>
> Invite your mail contacts to join your friends list with Windows  
> Live Spaces. It's easy! Try it! 
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Giuseppe Luigi Punzi Ruiz
Blog: http://www.lordzealon.com
Twitter & Skype & GoogleTalk accounts: glpunzi





------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20090705/57f7f9eb/attachment-0002.html>


More information about the Lazarus-es mailing list