Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Button in Columnheader einer Listview zeichnen (https://www.delphipraxis.net/70994-button-columnheader-einer-listview-zeichnen.html)

xineohp 7. Jun 2006 18:54


Button in Columnheader einer Listview zeichnen
 
hi,

ich versuche gerade einen Button (bzw. ein anderes tWinControl) in den Spaltenheader einer Listview (alternativ auch VirtualTreeview) zu bekommen.
Das Problem ist, dass das anscheinend eine nonclient area ist, bzw. bei einem TVirtualStringTree sind die Header vom Typ tVTHeader was aber leider keine Nachfahre von tWinControl ist.


Gruß

marabu 7. Jun 2006 20:18

Re: Button in Columnheader einer Listview zeichnen
 
Hallo Peter,

vielleicht hilft dir die Enhanced ListView von Brad Stowers mit ihrem Event OnDrawHeader() weiter.

Grüße vom marabu

xineohp 7. Jun 2006 20:28

Re: Button in Columnheader einer Listview zeichnen
 
hm, auch der VirtualStringTree hat ein onHeaderDraw Ereignis, allerdings ist der Header nicht von tWinControl abgeleitet und ich kann daher nicht einfach das Parentfeld meines Buttons setzen. (das ist die einzige Möglichkeit die ICH kenne um einen Button irgendwo draufzuzeichen; falls es eine andere gibt - was ich doch sehr hoffe :drunken: - wäre ich froh wenn sie mir jemand mitteilen könnte :mrgreen: )

marabu 8. Jun 2006 06:09

Re: Button in Columnheader einer Listview zeichnen
 
Du willst nicht selbst malen, sondern die Parent-Eigenschaft benutzen? Das geht natürlich - Parent ist dann ListView. Du musst dann dafür Sorge tragen, dass dein Button nach dem Neuzeichnen der Column-Header wieder nach vorne geholt wird. Standardmäßig ist jede HeaderSection selbst ein Button. Sieht bestimmt ulkig aus, dein Button auf einem anderen Button. Was hast du vor?

Grüße vom marabu

xineohp 8. Jun 2006 09:51

Re: Button in Columnheader einer Listview zeichnen
 
Also ...

mein eigentliches Ziel ist es eine Art Rollout hinzukriegen, d.h. bei einem Klick auf den HEader einer Spalte wird dieser größer und enthüllt ein Editfeld z.B. um einen Filter zu realisieren.

Wenn ich die Listview als parent verwende ist der "Ursprung" unterhalb der Headerzeile, man muss also mit negativen Positionen arbeiten.
Und, wie hole ich mein Control wieder nach vorne?

Sidorion 9. Jun 2006 09:07

Re: Button in Columnheader einer Listview zeichnen
 
.BringToFront


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