AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree Header Mousemove

Ein Thema von newbe · begonnen am 25. Mai 2015 · letzter Beitrag vom 25. Mai 2015
Antwort Antwort
newbe

Registriert seit: 14. Okt 2008
143 Beiträge
 
Delphi 7 Personal
 
#1

VirtualStringTree Header Mousemove

  Alt 25. Mai 2015, 07:13
Hallo allerseits!

Ich benutze AdvancedHeaderDraw um meine Headercolums selber zu zeichnen. Das klappt auch schon alles wie es soll. Jetzt hätte ich gerne das Sich der Headercolum selbst neu zeichnet wenn ich mit der Mouse über einen bestimmten Teil des HeaderColumns fahre. Die Koordinaten bekomme ich schon über Headermouesemove, jedoch muss ich ja dann einen Paintevent für den Headercolumn auslösen, sprich ein AdvandedHeaderDraw event. Jedoch weis ich nicht wie ich dort an die TPaintinfo komme. Komplettes Neuzeichnen des Tree's hilft anscheinend nicht und wär auch worstcase in dem Fall. Es muss doch ne Möglichkeit geben ein neuzeichen des HeaderColumns auszulösen?

mfg newbe
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: VirtualStringTree Header Mousemove

  Alt 25. Mai 2015, 11:32
Du könntest die Funktion vst.Header.Invalidate benutzen. Die zeichnet die Spalte des Headers komplett neu. Wenn ExpandToRight true ist, werden alle Columns rechts davon ebenfalls neu gezeichnet. Nützlich beim Resizen von Columns. Und bei dieser Funktion musst du nur den ColumnIndex übergeben und brauchst dir nicht die Arbeit zu machen, irgendwie an die PaintInfo dran zu kommen.
  Mit Zitat antworten Zitat
newbe

Registriert seit: 14. Okt 2008
143 Beiträge
 
Delphi 7 Personal
 
#3

AW: VirtualStringTree Header Mousemove

  Alt 25. Mai 2015, 11:40
@Aviator

vielen Dank für Deinen Tip, funktioniert bestens.

mfg newbe
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: VirtualStringTree Header Mousemove

  Alt 25. Mai 2015, 11:45
Bitte bitte. Hier kann man sich natürlich noch die Funktionen der Klasse TVirtualTreeColumns zu Hilfe nehmen. Da du ja im OnHeaderMouseMove Event des Trees neu zeichnen möchtest, könntet das dann so aussehen:

Delphi-Quellcode:
procedure TfrmMain.vstHeaderMouseMove(Sender: TVTHeader; Shift: TShiftState; X, Y: Integer);
begin
  Sender.Invalidate(Sender.Columns[Sender.Columns.ColumnFromPosition(Point(X, Y))]);
end;
Das nur noch als Ergänzung hierzu. Viel Spaß weiterhin mit dem VST.
  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 20: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