Irgendein "Genie" hatte hier einmal einen Code reingestellt, der es möglich machte, den Header einer XProfan-Gridbox mit Buttons zu versehen.
Diese konnten dann genau wie bei einer Listview von Frank Abbing zum Sortieren benutzt werden.
Leider finde ich den Code nicht mehr.
Wer kann helfen ?
Sortierbuttons für eine XProfan-Gridbox
-
horst_ -
2. Mai 2016 um 17:17
-
-
-
(Allgemeiner Hinweis auf was Ähnliches:) Lieber Horst, ListboxNr8 im Beispielcode Boxes.zip von Gerhard Putschalka hat Buttons oben drin. Allerdings weiß ich nicht, wie die Interaktion damit aussieht. Es sind aber Infos mit weiterführenden Hinweisen dabei.
Gruss -
Hallo "Specht"
Das ist ja eine wahre Fundgrube !
Hab mir jetzt erst mal den Listview-Text ausgedruckt und werde mich darin vertiefen.
Danke für den Tipp -
Die Sortierpfeile bekommst Du erstmal damit:
Code
Alles anzeigenproc SetHeader_SetArrow ''(Par: ListView, Spalte, Sortier-Richtung) parameters LV&,column&,updn& declare hdi#,fmt&,hdr&,txt$ hdr& = SendMessage(LV&,$101F,0,0) txt$ = space$(255) dim hdi#,28 long hdi#,0 = 167 long hdi#,8 = addr(txt$) long hdi#,16 = 256 SendMessage(hdr&,$1203,column&,hdi#) fmt& = long(hdi#,20) ifnot fmt& & 4096 fmt& = fmt& + 4096 endif if (updn& = 0) | (updn& = 2) ifnot fmt& & 1024 fmt& = fmt& + 1024 endif elseif (updn& = 1) ifnot fmt& & 512 fmt& = fmt& + 512 endif endif long hdi#,20 = fmt& SendMessage(hdr&,$1204,column&,hdi#) dispose hdi# endproc
Der Header-Style muß natürlich entsprechend gesetzt sein (Buttons...)
Nun brauchst Du "nur" noch Abfrage Spaltenklick, Sortierfunktion etc.Gruß Matthias
-
Ach so...und zum Entfernen des Sortierpfeils (beim Wechsel der Spalte):
Code
Alles anzeigenproc SetHeader_RemoveArrow parameters LV&,column& declare hdi#,fmt&,hdr&,txt$ hdr& = SendMessage(LV&,$101F,0,0) txt$ = space$(255) dim hdi#,32 long hdi#,0 = 183 long hdi#,8 = addr(txt$) long hdi#,16 = 256 SendMessage(hdr&,$1203,column&,hdi#) fmt& = long(hdi#,20) if fmt& & 4096 fmt& = fmt& - 4096 endif if fmt& & 2048 fmt& = fmt& - 2048 endif if fmt& & 1024 fmt& = fmt& - 1024 endif if fmt& & 512 fmt& = fmt& - 512 endif long hdi#,20 = fmt& SendMessage(hdr&,$1204,column&,hdi#) dispose hdi# endproc
na dann, viel Spass.....
-
Da ich das heute grade selbst brauchte und hier keine Option zum Editieren des Alt-Beitrags fand:
hdi# ist mit 28 Byte doch etwas zu knapp dimensioniert...besser also 32 statt 28 Byte
Gruß Matthias
-
Ich hab es mal editiert. Bitte mal kontrollieren, ob es so passt.
-
-
Dann erstmal Danke Euch beiden...
Dann basiert meine Info wohl auf einer veralteten Strukturdefinition. Jedenfalls haben 32bit bei mir immer ausgereicht. Wie auch immer - damit wäre auch das jetzt bereinigt.
Gruß Matthias
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!