Hallo,
Wenn man ein TVirtualStringTree mit sehr vielen Spalten hat, kann es von Vorteil sein die Überschriften senkrecht um 90° gedreht darzustellen.
Versucht habe ich es so:
Delphi-Quellcode:
procedure TForm.vstHeaderDraw(
Sender: TVTHeader; HeaderCanvas: TCanvas; Column: TVirtualTreeColumn;
R: TRect; Hover, Pressed: Boolean; DropMark: TVTDropMarkMode);
var
lf: TLogFont;
tf: TFont;
re, bt: Integer;
begin
tf:=TFont.Create;
try
tf.Assign(Font);
GetObject(tf.Handle, sizeof(lf), @lf);
lf.lfEscapement:=900;
lf.lfOrientation:=0;
tf.Handle:=CreateFontIndirect(lf);
HeaderCanvas.Font.Assign(tf);
finally
tf.Free;
end;
re := R.Right;
bt := R.Bottom;
R.Right := bt;
R.Bottom := re;
HeaderCanvas.FillRect(R);
HeaderCanvas.TextRect(R, R.Left + 2, R.Bottom - 2, Column.Text);
end;
Beim Header habe ich auch die Option OwnerDraw auf true gesetzt. Jedoch sieht alles so wie vorher aus. Sprich waagerechte Schrift.
Hat schon mal jemand den Text im Header senkrecht dargestellt und kann mir bei meinem Problem weiter helfen?
Danke