TPopupMenu-> Items ein - und ausblenden



  • Hallo zusammen,

    hab ein TPopupmenu einer TStringGrid zugewiesen und möchte nun, dass bei Klick über bestimmten Zellen bestimmte Items ein- bzw. ausgeblendet werden.
    Hab es versucht mi
    PopupMenu->Items[index].Visible=true [cpp]
    aber das klappt nicht. Wahrscheinlich hab ich den Befehl in das falsche Ereignis geschrieben. Hab es mit TPopupMenu::OnPopup(...) und TStringGrid::OnCellClick(...) probiert. Leider ohne Ergebnis. Obwohl der Befehl ausgeführt wird, hat es keinen Einfluss auf die Sichtbarkeit der Items.
    Kann mir jemand helfen???

    Danke im Voraus



  • Hallo

    OnPopup ist schon der richtige Event.
    allerdings kann ich mir nicht vorstellen, das deine Codezeile kompiliert, das sollte zumindestens so aussehen

    PopupMenu->Items[index]->Visible=true;
    

    Ansonsten sehe ich darin kein Problem. Bist du sicher, das irgendwo überhaupt ein MenuItem des Popup-Items unsichtbar geschaltet wird, sodas die Anweisung hier überhaupt einen Effekt hat?

    bis bald
    akari



  • Popup->Items[index] sind ganz normale Objekte, also keine Zeiger auf solche.
    D.h.
    [code]Popup->Items[index].Visible=true;

    ist schon OK und wird auch compiliert. Der Befehl wird auch aus ausgeführt. Leider ohne Wirkung. Items[index]->Visible ist nach Ausführung zwar true aber trotzdem nicht sichtbar. Hab es auch schon mit Enabled probiert. Trotz Zuweisung ist im Menü der Item blass.
    Das PopupMenu wird zur Laufzeit angelegt. Kann es damit zu tun haben irgendwie?

    Gruß



  • Wenn du in der Hilfe nachgeschaut hättest, dann hättest du rausfinden können, daß ein Popup-Menu ein einzelnen MenuItem als Items definiert, welches dann weitere MenuItems enthalten kann, d.h. der Aufruf lautet korrekt also

    PopupMenu->Items->Items[index]->Visible=true;
    

    Dein bisheriger Aufruf schreibt irgendwo in den Speicher...



  • Jo, mal nit so zickig, glaub mir, ich hab zunächst in der Hilfe nachgeschaut bevor ich die Frage gepostet habe. Mittlerweile habe ich dort auch ein passendes Beispiel gefunden. Sorry,

    Besten Dank für deine Hilfe, hätte ansonsten sicherlich noch viel Nerven an der Sache gelassen.

    Gruss Schetal


Anmelden zum Antworten