Einzelnen Beitrag anzeigen

OG Karotte
(Gast)

n/a Beiträge
 
#7

Re: VST.ColumnHeaders kein property "Name" unterst

  Alt 8. Sep 2008, 19:27
Zitat von richard_boderich:
Apropo mehrzeiligen Text im VST. Hast du zufällig eine Lösung wie ich mehrzeiligen Text bei fester Rowheight horizontal in der Zelle zentrieren kann?
Hat ein wenig länger gedauert und mein Ansatz bezog sich damals nur auf den Spaltenkopf, es sollte aber auch genauso für die einzelne Zelle gehen (ungetestet, aus meinem "Originalcode" übernommen und mit Sicherheit Überarbeitungsbedürftig) :

Delphi-Quellcode:
procedure TfrmMain.MyVSTBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node:
PVirtualNode; ItemRect: TRect; var CustomDraw: Boolean);

var
  S: WideString;
  MyData: PTMyNodeData;
  TheRect: TRect;

begin
  MyNodeData := Sender.GetNodeData(Node); // Daten holen
  S := System.Copy(MyNodeData.Text, 1, Length(MyNodeData.Text)); // Text holen
  // <-- hier Berechnung für TheRect (Ausmasse der zubefüllenden Zelle; müsste ItemRect entspr.) einfügen
  Windows.DrawTextW(TargetCanvas.Handle, PWideChar(S), Length(S),
                    TheRect, DT_EXPANDTABS or DT_SINGLELINE or DT_END_ELLIPSIS or
                    DT_CENTER or DrawTextBiDiModeFlagsReadingOnly); // Text ausgeben (DT_CENTER => Zentriert im 'TheRect')
  CustomDraw := True; // Damit der VST die Zelle nicht nochmal zeichnet ???
end;
Hoffe das war es, was Du meintest ???
  Mit Zitat antworten Zitat