AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TVirtualStringTree Header Text senkrecht 90° gedreht
Thema durchsuchen
Ansicht
Themen-Optionen

TVirtualStringTree Header Text senkrecht 90° gedreht

Ein Thema von madas · begonnen am 5. Okt 2007 · letzter Beitrag vom 5. Okt 2007
Antwort Antwort
madas

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

TVirtualStringTree Header Text senkrecht 90° gedreht

  Alt 5. Okt 2007, 14: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
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: TVirtualStringTree Header Text senkrecht 90° gedreht

  Alt 5. Okt 2007, 14:31
Hallo,

ohne deinen Code genau zu untersuchen: hast du eine TrueType-Schriftart verwendet? Nur diese können über die Windows-API gedreht werden.

Gruß Hawkeye
  Mit Zitat antworten Zitat
madas

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

Re: TVirtualStringTree Header Text senkrecht 90° gedreht

  Alt 5. Okt 2007, 14:39
Im Header ist MS Sans Serif. Aber auch wenn das keine sein sollte, mit Arial geht es auch nicht.

Bei Debuggen wird nicht mal die vstHeaderDraw aufgerufen. Ich dachte, wenn man die Option OwnerDraw beim Header auf true setzt,
sollte das eigentlich passieren?

Woran kann das liegen?

Edt: Anbei mal ein Testprojekt. Dort funktioniert das Drehen der Schrift auf einem Form. Die Frage bleibt also warum wird die
onHeaderDraw Methode nicht auf gerufen.
Angehängte Dateien
Dateityp: zip fonttest_294.zip (207,7 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#4

Re: TVirtualStringTree Header Text senkrecht 90° gedreht

  Alt 5. Okt 2007, 14:57
Zitat von madas:
Woran kann das liegen?
Schau Dir des Autors Kommentar zum TVTHeaderPaintEvent an
  Mit Zitat antworten Zitat
madas

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

Re: TVirtualStringTree Header Text senkrecht 90° gedreht

  Alt 5. Okt 2007, 15:05
Zitat von s-off:
Zitat von madas:
Woran kann das liegen?
Schau Dir des Autors Kommentar zum TVTHeaderPaintEvent an
Ok. Ich habe gefunden, was du meinst. Bei den Columns muss der Style auch auf OwnerDraw stehen.
Danke, damit werde ich weiter kommen denke ich.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz