Einzelnen Beitrag anzeigen

Geronimo

Registriert seit: 19. Dez 2006
Ort: Hamburg
38 Beiträge
 
#1

TDBGrid und horizontales Scrollen

  Alt 20. Feb 2009, 11:48
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
Die Welt ist rechteckig, linear und Gauss-verteilt!
  Mit Zitat antworten Zitat