Einzelnen Beitrag anzeigen

Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: [VTV] Virtual Treeview und horizontal scrollbar

  Alt 10. Jun 2012, 17:11
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
Nr.1 Delphi-Tool: [F7]

Geändert von ConnorMcLeod (10. Jun 2012 um 17:14 Uhr)
  Mit Zitat antworten Zitat