Hola.
Cita:
|
Primero creas el TTreeNodes y luego los reasignas?.
|
Si, en realidad podría haber enviado directamente el TreeView como argumento al constructor...
Código Delphi
[-]
constructor TMiTreeNodes.Create(TNd: TTreeView);
begin
FNodes := TTreeNodes.Create(TNd);
end;
Cita:
|
Y porqué usas properties pudiendo acceder a las variables declaradas public para ello. Se que son como los getters y setters de java pero en este caso no veo la necesidad,.. o si?
|
El uso de propiedades, si bién no es estríctamente necesario (se puede acceder a variables públicas de la clase o incluso globales), siempre es una buena práctica, ya que brinda mayor control y encapsulamiento.
Un saludo.
Edito: Me quedé pensando en lo que mencionas: "Lo que necesito es cargar un árbol de nodos desde disco sin necesidad de que se muestre en pantalla."
¿ Y no te resultaría más fácil usar un
TTreeView con su propiedad Visible = False ? Lo anterior quedaría reducido a:
Código Delphi
[-]
function GetThisNode(FNodes: TTreeNodes; Norma: string): TTreeNode;
var
N: TTreeNode;
begin
N:= FNodes.GetFirstNode;
while Assigned(N) and(N.Text <> Norma) do
N := N.getNextSibling;
Result:= N;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
t: TTreeNode;
begin
TreeView1.LoadFromFile('C:\ARCHIVO.TXT');
t:= GetThisNode(TreeView1.Items, 'UN_NODO');
if Assigned(t) then
...
end;