@OG Karotte
Ich glaube ich hab es jetzt gelöst. Folgender Code von mir zentriert
mehrzeiligen Text vertikal in der jeweiligen Zelle. Bitte mal gegentesten.
Danke an sh17 für seinen Hinweis auf die Lösung. Contentrect war das Stichwort.
Delphi-Quellcode:
procedure TForm1.vstBeforeCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellPaintMode: TVTCellPaintMode; CellRect: TRect;
var ContentRect: TRect);
var
Data: TMyData;
textheight: Integer;
differenz: Integer;
begin
Data:=TMyData(vst.GetNodeData(node)^ );
textheight:=vst.ComputeNodeHeight(targetcanvas,node,1,Data.Meldung);
differenz:=((Cellrect.Bottom-cellrect.Top)-textheight) div 2;
contentrect.Top:=contentrect.Top+differenz;
end;
//Edit
Ergänzungen der Code funktioniert nur mit Full Row select option des VST!
Bei normalem Select ergeben sich unschöne Effekte (Es wird nur Contentrect selektiert, und nicht die komplette Zelle)