PopupMenu ? TObject *Sender



  • hallo

    habe im Objektinspektor einer TTreeview ein PopupMenu zugewiesen.
    Weiss einer wie ich an die Komponente "TreeView" komme dem das PopupMenu zugewiesen wurde ?
    Das ganze muss aber dynamisch sein also der KomponentenName der TreeView darf nicht statisch in die Funktion geschrieben werden.

    void __fastcall TForm1::Popup_ladenClick(TObject *Sender)
    {
         TPopupMenu *M = (TPopupMenu*) Sender;
    
         //????????????????
         TTreeView *TR = (TTreeView*) Sender; ??????????
    }
    


  • Naja, schonmal mit der Eigenschaft Parent von TPopupmenu probiert?



  • gibt keine eigenschaft parent



  • hallo

    leider nicht optimal (da das Formular durchsucht werden muss) aber was anderes konnte ich nicht erzeugen 🙂 wäre fein wenn jemand was effizienteres anbieten könnte.

    void __fastcall TForm1::Popup_EintragAufClick(TObject *Sender)
    {
            TPopupMenu *PM = (TPopupMenu*) Sender;
    
            TComponent *T;
            T = Application->MainForm;
            int z = T->ComponentCount;
            for(int y=0; y < z; y++)
            {
                    if(T->Components[y]->ClassNameIs("TTreeView"))
                    {
                        TTreeView *TT = (TTreeView*) T->Components[y];
                        if(TT->PopupMenu->Name == PM->GetParentComponent()->Name)
                        {
                            ShowMessage(TT->Name);
                            break;
                        }
                    }
            }
    }
    


  • Hallo

    Siehe zum Beispiel hier.

    bis bald
    akari



  • Danke akari.


Log in to reply