Gleichzeitiges Scrollen zweier DBGrids über Scrollbar



  • Hallo!

    Ich habe zwei DBGrids, die übereinander positioniert sind. Im unteren DBGrid habe ich den Scrollbar eingeblendet, beim oberen ist er nicht sichtbar.
    Beide Grids enthalten Daten aus der gleichen Datentabelle. Im unteren Grid wird der Vorgängerdatensatz des oberen Grids angezeigt.
    Sind die Daten gleich, werden die Zellen normal gezeichnet, sind sie unterschiedlich, wird im unteren Grid die entsprechende Zelle farblich markiert. Die jeweiligen Datensätze sind länger, als auf einer Seite dargestellt werden können.
    Nun möchte ich entweder abhängig vom unteren DB-Grid oder mit Hilfe eines separaten ScrollBars beide Grids parallel horizontal scrollen.
    Das gelingt mir bisher nicht. Mein Ansatz ist die ScrollBy-Funktion, allerdings sieht dann das obere Grid furchtbar aus; man kann keinen Inhalt mehr erkennen und es gibt Grafikfehler.



  • Für die Nachwelt eine einfache Lösung:

    Anstatt umständlich über die oben genannte Variante zu scrollen, habe ich jetzt einfach eine Scrollbox genommen.
    Da sich die Breite des DBGrid nicht abhängig vom Inhalt der Tabelle verändert,
    sondern stattdessen innerhalb des Grids ein Scrollbar angezeigt wird, musste ich die einzelnen Spaltenbreiten addieren und dem Grid die Summe als Width übergeben.
    Die Scrollbox bekommt leider nicht mit, dass das DBGrid breiter ist, als die Anzeigefläche und es wird kein Scrollbar darin angezeigt.
    Ich habe dann als Notlösung die DBGrids in ein Panel gepackt und dessen Breite verändert. Auf diese Breitenveränderung reagiert die Scrollbox und blendet die Scrollbars wie gewünscht ein.


Anmelden zum Antworten