<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">La verdad, ni idea,<div><br></div><div>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.</div><div><br></div><div>Un saludo.</div><div><br></div><div><div><div>El 04/07/2009, a las 15:16, ELMO CALATAYUD escribió:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; ">Buen Dia Amigos.<br> <br>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.<span class="Apple-converted-space"> </span><br> <br>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<br> <br>>-- Raiz Arbol |<br> |-- Nodo 1<span class="Apple-converted-space"> </span><br> |-- Nodo 2<span class="Apple-converted-space"> </span><br> |-- Nodo 3<span class="Apple-converted-space"> </span><br> |-- Nodo 4 --| <br> |-- Sub Nodo 4-1<span class="Apple-converted-space"> </span><br> |-- Sub Nodo 4-2<br> |-- Sub Nodo 4-3<br> <br> <br>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<br> <br>>-- Raiz Arbol |<br> |-- Nodo 1 | Dato 1<span class="Apple-converted-space"> </span><br> |-- Nodo 2 | Dato 2<br> |-- Nodo 3 | Dato 3<br> |-- Nodo 4 --| Dato 4 <br> |-- Sub Nodo 4-1 | Dato 4-1<br> |-- Sub Nodo 4-2 | Dato 4-2<br> |-- Sub Nodo 4-3 | Dato 4-3<br> <br>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.<br> <br>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.<br> <br>El codigo Kylix es el siguiente:<br> <br>// Para la Raiz<br>TreeNode1:=Tree1.Items.add(nil, dbBusca.Fields[0].AsString+' '+dbBusca.Fields[1].AsString);<br>// Dato Adicional de la Raiz<br>Tree1.Items[Conta].SubItems.add(FormatFloat('0.00',Saldo)); <br> <br>// Para los Nodos<span class="Apple-converted-space"> </span><br>Tree1.Items.AddChild(TreeNode1,dbBusca.Fields[0].AsString+' '+dbBusca.Fields[1].AsString );<br>// Dato Adicional del Nodo<br>Tree1.Items[Conta].SubItems.add(FormatFloat('0.00',Saldo)); <br> <br>Mi Solución con Lazarus, hasta ahora va por:<span class="Apple-converted-space"> </span><br>// Primero Junto todos los datos en una sola cadena y lo asigno a la variable SaldoStr<br>SaldoStr := dbBusca.Fields[0].AsString+' '+PadRight(dbBusca.Fields[1].AsString),120) + ' ' + PadLeft(FormatFloat('#,##0.00;(#,##0.00)',Saldo), 14);<br> <br>// Para la Raiz<br>TreeNode1:=Tree1.Items.add(nil, SaldoStr);<br> <br>// Para los Nodos<span class="Apple-converted-space"> </span><br>Tree1.Items.AddChild(TreeNode1, SaldoStr);<br> <br>Esta Solucion no me es satisfactoria del todo ya que me desalinea mucho los datos, aun usando caracteres monoespace.<br> <br>¿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?.<br> <br>O de Plano, sera necesario derivar el compoente para agregarle la funcionalidad deseada, si tienen ejemplos de esto ultimo tambien les agradezco me comenten.<br> <br>Disculpen la molestia, sus sugerencias son bienvenidas.<br> <br>Saludos <br> <br><br><hr>Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy!<span class="Apple-converted-space"> </span><a href="http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us" target="_new">Try it!</a>_______________________________________________<br>Lazarus-es mailing list<br><a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br><a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br></div></span></blockquote></div><br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>Giuseppe Luigi Punzi Ruiz</div><div>Blog: <a href="http://www.lordzealon.com">http://www.lordzealon.com</a></div><div>Twitter & Skype & GoogleTalk accounts: glpunzi</div><div><br></div></div><br></div></span><br class="Apple-interchange-newline"></div></span><br class="Apple-interchange-newline"> </div><br></div></body></html>