Autor |
Beitrag |
Grendel
      
Beiträge: 443
Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
|
Verfasst: Fr 10.09.04 12:30
Moin, moin!
Ich bastel gerade an einem ScrollPanel mit eigenen ScrollBars. Das ganze läuft auch wunderbar bis auf eine Sache. Und zwar müsste ich noch mitbekommen, wenn ein Control, daß auf meinem Panel liegt, verschoben wurde um ggf. ScrollBars einzublenden.
Das Hinzufügen bzw. Löschen von Controls bekomme ich über CM_CONTROLLISTCHANGED mit und kann bei Bedarf die Leisten ein-/ausblenden.
Ich hab die Liste der CM_Messages schon durchgeguckt aber keine Message gefunden, die dafür zuständig zu sein scheint.
Hat jemand einen Hinweis oder gar schon die Erleuchtung parat?!
Besten Dank!
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Mo 13.09.04 11:11
Hmmm...
Wieso nimmst du nich einfach ne ScrollBox, die du so groß wie dein Panel ziehst? die sollte das ja alles schon machen.. Wenn du da keine Lust drauf hast, kannst ja vllt auch im Code der Scrollbox suchen, wie die das mit dem Verschieben machen und das als anreiz nehmen....
MrSaint
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
Grendel 
      
Beiträge: 443
Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
|
Verfasst: Mo 13.09.04 15:46
Moin, moin!
MrSaint hat folgendes geschrieben: | Wieso nimmst du nich einfach ne ScrollBox, die du so groß wie dein Panel ziehst? |
Weil ich, wie erwähnt, eigene ScrollBars haben muss und da komme ich mit einer ScrollBox nicht weiter.
MrSaint hat folgendes geschrieben: | ... kannst ja vllt auch im Code der Scrollbox suchen, wie die das mit dem Verschieben machen und das als anreiz nehmen.... |
Das werd ich dann wohl tun müssen
Besten Dank!
Bis neulich ...
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Mo 13.09.04 15:58
evtl. bekommst du deine Scrollbalken aber auch in der Scrollbox rein... Du müsstest ne eigen ScrollBox-Klasse von TScrollBox ableiten, in der du die Scrollbars durch deine ersetzt. Müsstest dann halt intern in der Klasse wahrscheinlich einen Cast von deiner ScrollBar auf TControlScrollBar (die Standard-ScrollBar) halten und eben deine eigene, damit du nich die komplette Klasse neu schreiben müsstest. Dann müsstest wahrscheinlich die Zeichnen-Prozedur umschreiben, dass deine Scrollbars gezeichnet werden und net die normalen (oder? brauchts das überhaupt?). Deine Scrollbar-Klasse müsste halt auf jeden Fall von TControlScrollBar abgeleitet sein.
Wenn du jetzt halt merkst, dass das total kompliziert ist mit dem Rausfinden, wie das bei TScrollBox gelöst ist, dann würd ich den Weg einschlagen, weil allzu lang sollte die Umsetzung davon ja auch net brauchen...
MrSaint
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
Grendel 
      
Beiträge: 443
Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
|
Verfasst: Mo 13.09.04 20:39
Genau in dieser Richtung habe ich mich ursprünglich umgeschaut aber eben das Ersetzen der Scrollbars scheint nicht so ohne weiteres möglich zu sein.
Hab mich dann auch nicht lange damit auseinandergesetzt sondern eine komplett eigene Scrollbox geschrieben, die auch schon einwandfrei funktioniert und im Einsatz ist nur nicht mitbekommt, wenn ein Control verschoben wird.
Werd mich in einer ruhigen Minute mal durch die möglichen Windows Messages wühlen; Irgendeine Message muss der Parent doch bekommen.
Besten Dank jedenfalls.
|
|
|