hmmmm... ich verwende, das UserData beim AddChild immer nur dann, wenn ich Klassen übergebe, bei records habe ich noch nie das UserData verwendet, von daher kann es schon sein ...
also, ich vermute das es eintweder ein pointer problem ist, das du dir irgendwo mit einem pointer daten überschreibst, oder das einfach deine OnGetText procedure falsch ist.
ich würde mal folgendes probieren :
einfach mal das OnGetText Event rauswerfen -> kannste dann alles aufklappen oder kommt auch noch ein fehler
dann baue mal den Addchild um, das du da nicht einen UserData übergibst, sondern direkt in den GetUserData dann reinspeichern
Delphi-Quellcode:
for i := 0 to FXML.Root.Items[1].Items.Count - 1 do
begin
fTree.GetUserData(FTree.AddChild(nil)).Level := nlForm;
end;
ungefähr so, aber nicht getestet