Bei DblClick-Methode zwischen Maustasten unterscheiden



  • Guten Abend!

    Da die DblClick-Methode kein "TMouseButton Button" enthält, krieg ichs grad nicht hin, eine Aktion nur bei einem Doppelklick mit der linken Maustaste auszuführen.

    Gegoogelt habe ich diese Lösung, die bei mir allerdings nicht funktionieren will:

    void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
           TShiftState Shift, int X, int Y)
    {
       if ( Shift.Contains ( ssDouble ) )
          {
           if ( Button == mbLeft ) //do something ;
           else if ( Button == mbRight )//do something ;
      }
    }
    

    .

    Hat wer dafür eine andere Lösung?

    Schönen Abend noch



  • "funktioniert nicht" ist keine ausreichende Fehlerbeschreibung

    was passiert/nicht bzw. was erwartest du?
    hast du den Quellcode wirklich so versucht wie er dort steht?
    hast du den Debugger verwendet?

    bei mir funktioniert der Quellcode...



  • So, habe das Ganze mal in der MouseDown-Methode einer Form probiert, da funktionierts echt super. Ich brauche das aber für mein TrayIcon und dort passiert nach wie vor überhaupt nichts.
    Wenn ich ganz normal debuggen will (in den Zeilen der if-Abfragen) erkennt er allerdings alle Punkte als ungültige Haltepunkte an, weswegen ich nicht nachvollziehen kann, ob diese überhaupt erreicht werden 😕



  • die Information dass es um ein TTrayIcon geht, wär ja schon zu Beginn hilfreich gewesen, zumal dein Quellcodebeispiel fürs Formular war

    was das Debuggen angeht: die erste Bedingung ssDouble wird nie wahr, das das TrayIcon anscheinend beide Klicks als getrennte Ereignisse behandelt

    also entweder zählst du wie oft geklickt wurde, oder du überdenkst deine Klickereignisse


Anmelden zum Antworten