Delphi - auxilio !!!! con el TreeView

 
Vista:

auxilio !!!! con el TreeView

Publicado por Verónica (5 intervenciones) el 12/02/2003 18:50:33
Soy nueva en Delphi, y necesito poner un TreeView para mostrar unos cuadros dependiendo del nodo que se haya seleccionado, por ejemplo:

Tema-1
Subtema 1-1
Subtema 1-2
Tema-2
Subtema 2-1
Subtema 2-2
Tema-3
Subtema 3-1

Dependiendo del nodo que sea seleccionado mostrar un archivo de texto en un RichEdit .

Se que no es dificil hacerlo, pero estoy perdida y no tengo la menor idea de como hacerlo.

Nota: Los temas y subtemas son fijos.

Ojala puedan ayudarme y de antemano mil gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:auxilio !!!! con el TreeView

Publicado por Ernesto D'Spirito (706 intervenciones) el 17/02/2003 08:53:07
En realidad es bastante sencillo, no te preocupes.

Cada nodo tendrá su índice en el arreglo TTreView.Nodes:

0) Tema-1
1) Subtema 1-1
2) Subtema 1-2
3) Tema-2
4) Subtema 2-1
5) Subtema 2-2
6) Tema-3
7) Subtema 3-1

Con unos IF encadenados podremos determinar cual es el nodo seleccionado para así determinar el archivo que le corresponde. Ejemplo:

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
archivo : string;
begin
with (Sender As TTreeView) do
if Items[0] = Node then
archivo := 'archivo1.rtf'
else if Items[1] = Node then
archivo := 'archivo1-1.rtf'
else if Items[2] = Node then
archivo := 'archivo1-2.rtf'
:
:
else if Items[7] = Node then
archivo := 'archivo3-1.rtf';
if archivo <> '' then
Richedit1.Lines.LoadFromFile(archivo);
end;

En vez de números tal vez deberías considerar usar constantes o un tipo enumerado para que tengan nombres más descriptivos y se facilite el mantenimiento de la aplicación.

Si usas otro evento que no tenga un parámetro Node para indicar el nodo seleccionado (como por ejemplo OnClick, OnDblClick, etc.) entonces en el código de arriba simplemente sustituye Node por Selected (propiedad del TreeView que devuelve el nodo seleccionado). Ejemplo:

procedure TForm1.TreeView1Click(Sender: TObject);
var
archivo : string;
begin
with (Sender As TTreeView) do
if Items[0] = Selected then
archivo := 'archivo1.rtf'
else if Items[1] = Selected then
archivo := 'archivo1-1.rtf'
else if Items[2] = Selected then
archivo := 'archivo1-2.rtf'
:
:
else if Items[7] = Selected then
archivo := 'archivo3-1.rtf';
if archivo <> '' then
Richedit1.Lines.LoadFromFile(archivo);
end;

Espero que te sirva.

Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar