![]() |
TDBGrid und horizontales Scrollen
Hallo alle zusammen!
Ich habe mal wieder ein Problem. Ich möchte das Aussehen der Spaltenüberschriften ändern. Dafür habe ich entsprechenden Code in die DrawColumnCell-Methode geschrieben. Das funktioniert auch so weit. Mein Problem ist nun das horizontale Scrollen des DBGrids. Dabei wird offensichtlich nur die DrawColumnCell-Methode für die neu sichtbare Spalte aufgerufen (Anders als beim Ändern der Größe einer Spalte. Dort wird immer das gesamte Grid neugezeichnet.) In den anderen schon zuvor sichtbaren Spalten wird die Spaltenüberschrift als Default geschrieben, jedoch ohne meine Änderungen. Zur Lösung des Problems habe ich jetzt folgende Ideen: 1. in der DrawColumnCell immer die gesamte Kopfzeile neu zeichnen. Nachteil: Man muss sich mühsam die Koordinaten für den Zeichenbereich selbst ermitteln und zeichnet alles neu, auch wenn das nicht erforderlich ist. 2. Auf das Scrollen des DBGrids reagieren. Hierfür wollte ich auf WM_HSCROLL im Application.OnMessage reagieren. Geht aber irgendwie nicht. Bei anderen Messages etwa WM_MouseScroll funktioniert das aber. Hat jemand eine Idee, warum das nicht geht? Was sind Eure Empfehlungen, um das Problem mit dem Scrollen zu lösen? Erste oder zweite Variante oder noch was ganz anderes? Danke schon mal im Voraus. Gruss Geronimo |
Re: TDBGrid und horizontales Scrollen
...pusch...
Ich mach's ungern, aber hat keiner einer Idee. Ist die Frage zu schwer oder zu einfach. :gruebel: Gruss Geronimo |
Re: TDBGrid und horizontales Scrollen
Hallo
Überschreibe die WindowProc des TDBGrids und fange dort die Nachricht WM_HSCROLL ab. Sieht dann etwas so aus:
Delphi-Quellcode:
private
OldDBGridWndProc: TWndMethod; procedure DBGridWindowProc(var Message: TMessage); procedure TForm1.FormCreate(Sender: TObject); begin OldDBGridWndProc := DBGrid1.WindowProc; DBGrid1.WindowProc := DBGridWindowProc; end; procedure TForm1.DBGridWindowProc(var Message: TMessage); begin OldDBGridWndProc(Message); if Message.Msg = WM_HSCROLL then ... end; |
Re: TDBGrid und horizontales Scrollen
Hallo toms,
vielen Dank für die Antwort. Werde ich ausprobieren und Rückmeldung geben. Gruss Geronimo |
Re: TDBGrid und horizontales Scrollen
Hallo, konntest du es schon ausprobieren?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz