ListBox Eintrag mittels PopUpMenu auswählen



  • Hallo,

    ich bin sicher das das schon mal besprochen wurde allerdings lieftert mir die Suchfunktion zu dem Thema nix 😞
    Ich möchte eigentlich nur mit einem Rechtsklick auf einen Eintrag in einer Listbox für diesen verschiedene Optionen mit einem PopUpmenü zu Verfügung Stellen. Leider weiß ich nicht, wie ich dem PopUpMenu klar machen kann, für welchen ListBox Eintrag es aufgerufen wurde.
    Hat jemand rat?

    Danke!



  • Hallo

    indem du in PopUp-Event des PopUp-Menüs den ItemIndex der ListBox auswertest.

    bis bald
    akari



  • Ja, das habe ich ausch schon getan. Diese Methode hat aber den riesen Nachteil, dass nur die Ausgewählte Zeile ausgewertet wird. Und das ist die, welche zuletzt mit einem linksklick "aktiviert" wurde. Mache ich den Rechtsklick fürs PopUpMenue aber auf einer völlig anderen Zeile, wird die eigentlich ausgewählte genommen, und nicht die, auf welche ich den Rechtsklick angewednet habe.
    Das ist leider ein absolutes K.O. Kriterium 😞

    Man könnte ja auch den Rechtsklick auf die ListBox abfangen und den ItemINdex entsprechend setzten. Da es aber keine ScreenToClient() Funtion in TListBox gibt, weiß ich nicht wie das anzufangen wäre 😞



  • Fang doch das onMouse Down ergeignis auf der ListBox ab und wenn es ein rechts click ist waehlst Du das Item an der Mouse Position aus als selectet.

    void __fastcall TForm1::ListBox1MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
      if(Button == mbRight)
      {
        ShowMessage(ListBox1->ItemAtPos(Point(X,Y),true));
      }
    }
    


  • Danke YLIREBUS, es geht!


Anmelden zum Antworten