Drag&Drop Problem



  • hi!
    ich habe ein TListView mit drag&drop funktion. alles geht auch soweit. nur wenn ich (das ist ein filemanager) eine datei rüber zieh in ein anderes fenster wird sie "virtuell" kopiert. nun will ich dass das ganze auch physisch von statten geht und da taucht mein problem auf:

    Wie kann ich auf das ziel-, source-fenster jeweils zugreifen?

    also im sinne von:

    sourceform->Pfad->Caption

    die funktion die ich benutze:

    // nur von TListView zu TListView
        if (Source->ClassNameIs("TListView") && Sender->ClassNameIs("TListView"))
        {
            TListView *LvSource = (TListView *)Source;
            TListView *LvDest = (TListView *)Sender;
    
            // mit erstem selektiertem eintrag anfangen
            int iSelectedIndex = LvSource->Selected->Index;
    
            // alle selektierte elemente in destination-liste einfügen
            for (int i=iSelectedIndex; i<LvSource->Items->Count; i++)
            {
                TListItem *LiSelected;
    
                // Nur ausgewählte
                if (LvSource->Items->Item[i]->Selected)
                {
                    LiSelected = LvSource->Items->Item[i];
    
                    // in dest neues item erstellen
                    TListItem *LiNewItem = LvDest->Items->Add();
    
                    // Statt dem code soll die copy funktion eingefügt werden.
                    // auf den namen der datei (TListItem) kann ich ja zugreifen
                    // nur auf den Pfad der in einem Label gespeichert wird nicht.
    
                    // selected item kopieren
                    LiNewItem->Assign(LiSelected);
                }
            }
        }
    

    (Code stammt aus einem älteren Post...)

    cya
    scops



  • Die 2 Listviews sind in verschiedenen Formen?

    Dann mach doch beim ersten Eintrag in Source einen SubItem- Eintrag mit Pfad namen. Die SubItem(s) kann Deine Funktion dann auslesen. Schon haste den kompletten Source- Pfad mit Dateinamen.



  • SubItem?
    wie mach ich ein SubItem? ich weiß mit Add(); kann ich nen item einfügen... aber subitem?
    könntest du mir nen codebeispiel geben? danke 🙂

    cya
    scops



  • hat sich erledigt! danke für den tipp... *rumbastel* 🙂

    cya
    scops


Anmelden zum Antworten