Problem mit TMenuItem



  • Also, ich hoffe ihr könnt mir helfen, denn ich bin verzweifelt, undzwar habe ich folgendes Problem: Ich habe ein Popupmenü und einen Eintrag. In diesem Eintrag erstelle ich dynamisch Untereinträge (rekursiv da ich die Daten aus einer XML auslese und wo es Knoten und Unterknoten gibt) und verknüpfe auch ein OnClick-Ereignis dazu.

    der Code sieht folgendermaßen aus:

    void __fastcall TForm1::MoveToGroupClk(TObject *Sender)
    {
    	TMenuItem  *gt=(TMenuItem*)Sender;
    	ShowMessage(gt->Tag); //---Dienst erstmal zu Testzwecken...
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::CreateGroupMenuItems(_di_IXMLNode CheckNode,TMenuItem *parentitem)
    {
    	if (!Form1->XML->Active) return;
    	if (CheckNode==NULL)
    	{
    		CheckNode=Form1->MovieEntryNode;
    		parentitem=VerschiebennachGruppe1;
    	}
    	for (int g=0;g<CheckNode->ChildNodes->Count;g++)
    	{
    		if (CheckNode->ChildNodes->Get(g)->NodeName=="Group")
    		{
    			TMenuItem *mt = new TMenuItem(LVPopup);
    			parentitem->Add(mt);
    			String capt=CheckNode->ChildNodes->Get(g)->ChildNodes->FindNode(L"GroupCaption")->Text;
    			mt->Caption=StringReplace(capt,"&","&&",TReplaceFlags()<<rfReplaceAll);
    			mt->Tag=(int)(void*)CheckNode->ChildNodes->Get(g); //--Handle des XML-Items an Tag übergeben
    			mt->OnClick=MoveToGroupClk;
    			mt->ImageIndex=15;
    			CreateGroupMenuItems(CheckNode->ChildNodes->Get(g),mt);
    		}
    	}
    }
    

    Alles wird ordentlich erstellt, aber wenn ich mit der Maus über ein Menü-Eintrag gehe, welches Untereinträge enthält, wird OnClick ausgelöst, ohne dass ich aber geklickt habe!
    Wie kommt das? Also es passiert nach einigen Sekunden wenn sich die Untereinträge öffnen...

    Muss ich irgendeine Message abfangen die das verhindert??
    Ich bin ratlos... 😮


Anmelden zum Antworten