Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Virtualtreeview Header Farbe ändern (https://www.delphipraxis.net/92204-virtualtreeview-header-farbe-aendern.html)

naridian 16. Mai 2007 00:56


Virtualtreeview Header Farbe ändern
 
Hallo!

Ich möchte in Virtualtreeview/stringtree die Spaltenheader in blau statt in grau haben. Und zwar möchte ich am liebsten den XPStil behalten (Farbverlauf) und nur die Farben von grau nach blau abändern. Habs mal mit

Delphi-Quellcode:
procedure TMainform.VSTHeaderDraw(Sender: TVTHeader;
  HeaderCanvas: TCanvas; Column: TVirtualTreeColumn; R: TRect; Hover,
  Pressed: Boolean; DropMark: TVTDropMarkMode);
begin
  HeaderCanvas.Brush.Color := $00FEECDD;
  HeaderCanvas.FillRect(R);
end;
versucht. Das führt dazu dass einfach der ganze Header mit blau überschrieben wird (keine Trennlinien, keine Beschriftung mehr). Ist also noch nicht die ideale Lösung. Es gibt auch eine Eigenschaft Header.Background (Tcolor) die aber bei mir überhaupt keine Wirkung zeigt.

Hier gibt es das Archiv der Virtualtreeview Yahoo Gruppe englisch. Dort finde ich Themen die meine Frage beantworten könnten, ich kann sie aber nich öffnen. Im original kann ich die Yahoo Gruppe nicht mehr finden. Ist aber auch egal falls mir hier jemand helfen kann ;)

Danke!

hsg 16. Mai 2007 06:48

Re: Virtualtreeview Header Farbe ändern
 
Hallo,

ich habe eben mal versucht das Yahoo-Archive zu laden und zu öffnen: ich habe damit keine Probleme!

Aber nun zu deinem Problem: Der OnHeaderDraw-Event ist wohl dazu da, den kompletten Header (inkl. Button) selber zu malen und steht in PaintHeader am Ende der Methode, nachdem also sämtliche Tätigkeiten vom VirtualTreeView abgeschlossen sind. Da würde es also heissen alles selber machen.

Es gibt aber noch zwei Möglichkeiten:
1) Es gibt ein Event OnAdvancedHeaderDraw, welcher aufgerufen wird, wenn der Event OnHeaderDrawQueryElements etwas zurück liefert (z.B. hpeBackground) dort kannst du gezielt nur dieses Element malen

2) Beim Header-Style hxXPStyle wird die Methode DrawXPButton aufgerufen, direkt darüber stehen Konstanten, die das Aussehen beeinflussen (z.B. XPDarkGradientColor)

Schau dir das ganze mal in der Richtung an...

naridian 17. Mai 2007 16:46

Re: Virtualtreeview Header Farbe ändern
 
danke! das waren ein paar prima tips. ich habs mit der letzten lösung gemacht aber was das OnAdvancedHeaderDraw ist hat mich auch interessiert.

nur noch aus neugier:
das archiv öffnen kann ich auch, er zeigt mir aber die beiträge nicht an. also ich suche z.b. nach header color, finde einige treffer, aber kann die beiträge nicht öffnen ("seite kann nicht angezeigt werden"). bist du sicher dass das bei dir anders ist?

Hawkeye219 17. Mai 2007 17:07

Re: Virtualtreeview Header Farbe ändern
 
Hallo,
Zitat:

Zitat von naridian
das archiv öffnen kann ich auch, er zeigt mir aber die beiträge nicht an. also ich suche z.b. nach header color, finde einige treffer, aber kann die beiträge nicht öffnen ("seite kann nicht angezeigt werden"). bist du sicher dass das bei dir anders ist?

Du solltest die angebotene .chm-Datei auf ein lokales Laufwerk deines Rechners kopieren und dort mit ihr arbeiten. Beim Öffnen einer kompilierten Hilfedateien auf einem Remote-Laufwerk können Probleme auftreten, die nur durch Registry-Eingriffe zu beheben sind.

Gruß Hawkeye

naridian 19. Mai 2007 00:57

Re: Virtualtreeview Header Farbe ändern
 
Das Archiv funktioniert dann leider auch nicht. Aber ist nicht so schlimm, brauche es nicht dringend.

OG Karotte 19. Mai 2007 07:51

Re: Virtualtreeview Header Farbe ändern
 
Zitat:

Zitat von naridian
Das Archiv funktioniert dann leider auch nicht. Aber ist nicht so schlimm, brauche es nicht dringend.

Hast Du die *.chm kopiert oder nur 'ne Verknüpfung erstellt???

Sehr zu empfehlen sind auch die Newsgroup zum VT (news:news.soft-gems.net). Die Gruppe 'delphi-gems.support.virtualtreeview' behandelt Themen bis Oktober 2005 für Win32 und .Net Versionen vom VT. Die Gruppe 'delphi-gems.support.virtualtreeview.vcl' wurde danach erzeugt und behandelt nur Themen zur Win32 Version ab Okt. 2005.

Dort findest Du auch einige Anregungen und Erklärungen zu Methoden, die in der Hilfe nicht weiter beschrieben sind (und praktisch auch auf diese Gruppen verweisen :wink: ).


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 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