DBGRid rechte Maustaste



  • Hi all,

    ich habe in meinen DBGrid ein kleines Problem!
    ich möchte beim klick der rechten maustaste einfach in die nächste Spalte springen, nur leider weiß ich nicht wie ich an das Ereignis herankomme. Im Objektinspektor kann die Eigenschaften "OnMouseDown / Up" erstellen. Nur beziehen diese sich scheinbar nur auf die Spaltennamen bzw. auf den Bereich wo keine Daten angezeigt werden.

    void __fastcall TFormControlClient::DBGrid_AuftraegeMouseDown(
          TObject *Sender, TMouseButton Button, TShiftState Shift, int X,
          int Y)
    {
         if (Button == mbRight)
            Application->MessageBox("Rechtsklick","LL");
    }
    

    Sobal ich in einem Datenfeld die rechte Maustaste klicke, passiert nix, bin ich mit der Maus am Spaltennamen oder unten im leeren Bereich kommt die Messagebox!

    ich hoffe mir kann jemand einen guten Tip geben!

    thx a lot Sven



  • Hallo

    Der Event OnMouse... wird vom DBGrid abgefangen und ausgewertet, wenn in eine Zelle geklickt wird. Und dann wird OnCellClick ausgelöst, aber dort bekommst du nicht mehr raus ob rechte oder linke Taste.

    Die Lösung ist, von TDBGrid abzuleiten und die Windowsmessages für die Mausklicks selber abzufangen, auszuwerten und an die Originalfunktion weiterzuleiten.

    bis bald
    akari



  • Danke!

    Sowas in der hatte ich schon befürchtet! Werd mal versuchen ob ich es hinbekomme!

    Thx Sven


Anmelden zum Antworten