DBGrid: Welches Ereignis wird per Klick auf Scrollbalken ausgelöst?



  • Hallo,

    mit Klick auf den vertikalen Scrollbalken eines DBGrids wird der Datensatzmarkierer aktualisiert (falls Daten vorhanden sind). Wenn der Datensatz zuvor markiert war (z.B. blau hervorgehoben), wird auch die Markierung entsprechend verschoben.

    1. Wie kann ich das Markieren zur Laufzeit vornehmen?
    2. Welches Ereignis wird mit Klick auf den vertikalen Scrollbalken ausgelöst?

    Gruß
    Leo



  • Hi,

    zu 1)
    Es gibt mehrere Möglichkeiten (DBGrid hat Focus):
    - Navigatortasten,
    - ButtonClick und Table->Next(), ...,
    - PfeiltastenKlick simulieren,
    - mit folgendem Code Maus-Klick simulieren :

    // vorher Koord. der gewünschten Zelle ermitteln
       SendMessage(DBGrid1->Handle, WM_LBUTTONDOWN, (WPARAM)MK_LBUTTON, MAKELONG (X, Y));
       DBGrid1->SetFocus();
       SendMessage(DBGrid1->Handle, WM_LBUTTONUP,   (WPARAM)MK_LBUTTON, MAKELONG (X, Y));
    

    Wahrscheinlich gibts noch andere Varianten.

    zu 2)
    Die erste eintreffende Message ist WM_NCLBUTTONDOWN, d.h. Klick mit der linken Maustaste in die nonclient Area des Grid.

    mfg
    kpeter


Anmelden zum Antworten