Drag Drop von TListBox nach TTreeView



  • Hallo ihr,
    Ich wuerde gerne, das ich ein TListBoxItem auf eine TTreeNode per drag and drop ziehen kann. und dann den string von beiden auswerten kann.

    meine version hat den fehler, das natuerlich die Selected TreeNode verwendet wird. und nicht. die wo das drop passiert.

    danke

    void __fastcall TmainWin::treeDragDrop(TObject *Sender, TObject *Source, int X, int Y)
    {
            if (Source->ClassNameIs("TListBox") && Sender->ClassNameIs("TTreeView"))
            {
              try
              {
                    TListBox *lb = (TListBox *) Source;
                    AnsiString elementText = lb->Items->Strings[lb->ItemIndex];
                    AnsiString str = elementText.SubString(0,2);
                    AnsiString id = elementText.SubString(4,elementText.Pos(":")-4);
    
                    TTreeView *tv = (TTreeView *) Sender;
                    TTreeNode *node = tv->Selected;
                    AnsiString tvstr = node->Text.SubString(0,2);
                    AnsiString tvid = node->Text.SubString(4,node->Text.Pos(":")-4);
    
                    Application->MessageBox(AnsiString("SRC:"+str+":"+id+"\nDES:"+tvstr+":"+tvid).c_str(),"Node", MB_OK );
              }
              catch (...)
              {
              }
            }
            else if (Source->ClassNameIs("TTreeView") && Sender->ClassNameIs("TTreeView"))
            {
            }
    }
    


  • schon gefunden 🙂

    TTreeNode *node = tv->GetNodeAt(X,Y) ;
    

    oder gibts noch eine bessere idee


Anmelden zum Antworten