Einzelnen Beitrag anzeigen

madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#1

TVirtualStringTree Header Text senkrecht 90° gedreht

  Alt 5. Okt 2007, 13:07
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
  Mit Zitat antworten Zitat