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? dankecya
scops
-
hat sich erledigt! danke für den tipp... *rumbastel*
cya
scops