Juchu, ich bin nicht der Einzige
Mein Workaround ist so:
von Stackoverflow:
Delphi-Quellcode:
function TMyVirtualTree.IsTextClipped(Node: PVirtualNode; Column: TColumnIndex): Boolean;
var
FullRect, ClippedRect: TRect;
begin
FullRect := GetDisplayRect(Node, Column, True, True);
ClippedRect := GetDisplayRect(Node, Column, True, False);
Result := (ClippedRect.Right - ClippedRect.Left) < (FullRect.Right - FullRect.Left);
end;
im Event OnAfterPaintItem des Trees:
Delphi-Quellcode:
procedure TMyVirtualTree.DoAfterItemPaint(
Sender: TBaseVirtualTree
; TargetCanvas: TCanvas
; Node: PVirtualNode
; ItemRect: TRect
);
begin
if (0 < Header.Columns.Count) and IsTextClipped(Node, 0) then
begin
ScrollBarOptions.AlwaysVisible := True;
end;
end;
Wenn Du IsTextClipped auf Deine Spalten anpasst, dann könnte es gehen.
Edit: nach näherer Betrachtung, glaube ich das nicht mehr. Naja.
Leider kann man auf diese Art die Scrollbars nicht mehr ausblenden, wenn sie mal eingeblendet sind.
HTH