Hola.
Realmente no alcanzo a entender bién lo que deseas hacer por lo que no voy a sugerir nada...
Remitiendome al código, probá de este modo:
Código Delphi
[-]
...
type
TMiTreeNodes = class(TObject)
private
FNodes: TTreeNodes;
public
property Nodes: TTreeNodes read FNodes write FNodes;
constructor Create(TNd: TTreeNodes);
function GetThisNode(Value: string): TTreeNode;
destructor Destroy; override;
end;
...
implementation
constructor TMiTreeNodes.Create(TNd: TTreeNodes);
begin
FNodes := TTreeNodes.Create(nil);
FNodes := TNd
end;
function TMiTreeNodes.GetThisNode(Value: string): TTreeNode;
var
N: TTreeNode;
begin
N:= FNodes.GetFirstNode;
while Assigned(N) and(N.Text <> Value) do
N := N.getNextSibling;
Result:= N
end;
...
Ejemplo
Código Delphi
[-]
TForm1 = class(TForm)
TreeView1: TTreeView;
...
private
FRL: TMiTreeNodes;
procedure CargarTreeNode;
public
end;
...
implementation
...
procedure TForm1.CargarTreeNode;
begin
TreeView1.LoadFromFile('C:\ARCHIVO.TXT');
FRL:= TMiTreeNodes.Create(TreeView1.Items)
end;
procedure TForm1.Button1Click(Sender: TObject);
var
tn: TTreeNode;
begin
tn:= FRL.GetThisNode('UN DATO');
if Assigned(tn) then
begin
ShowMessage(tn.Text);
...
end
end;
...
Saludos.