ich hab von treeviews jetzt nicht die dicke ahnung, aber trotzdem habe ich ideen, wie du evtl. einen workaround hinbekommen könntest.
1. hast du es schonmal statt mit TLabel mit TText probiert? (Geht das mit Treeview?) Oder bleibt das Problem bestehen?
2. Bei TText und vermutlich auch beim Label kannst du die Maße in ein TRectF ausgeben lassen. MeasureText hattest du ja bereits selber erwähnt.
Delphi-Quellcode:
var Textfeld: TText; //oder ggf. aus Komponente
R: TRectF;
//evtl. selbst erzeugen? mit Treeview als Parent?
Textfeld:= TText.Create(DeinTreeView);
Textfeld.Canvas.Font.Size := FontSize; //Schriftgrad eintragen!!
Textfeld.Canvas.MeasureText(R, 'mein Text', {wordwrap:} False, [], TTextAlign.Leading, TTextAlign.Leading);
wenn die Ergebnisse immer nur einzeilige Abmessungen ergeben, dann hast du zumindest den Platz, den eine Zeile benötigt. Damit müsste sich doch arbeiten lassen, oder?