|
| aide pour la fonctionnalité drag and drop |
| Iniciado por alexion, 26,nov. 2019 10:55 - No hay respuesta |
| |
| | | |
|
| |
Miembro registrado 117 mensajes |
|
| Publicado el 26,noviembre 2019 - 10:55 |
Bonjour à toutes et à tous,
Je développe en ce moment même une fonctionnalité de drag and drop et je me heurte à quelques impondérables liés à mes faibles connaissances en WinDev... je m'explique...
Je cherche à réaliser une opération de drag and drop dans une table permettant à terme de réaliser une copie d'un fichier droppé dans un répertoire cible.
Cependant, parce que ce serait trop facile, ma table est elle même reliée à un champ arbre qui me permet de naviguer entre les répertoires composant un dossier parent :
sUnFichier, sResListeFichier, sStatutCryptage sont des chaînes
TableSupprimeTout(TABLE_PreviewDuContenuLocal)
SI ARBRE_RépertoireLocal..Occurrence = 0 OU ArbreSelect(ARBRE_RépertoireLocal, Vrai) = "" ALORS RETOUR FIN
sLigneSélect est une chaîne = ArbreSelect(ARBRE_RépertoireLocal, Vrai)
sLigneSélect = Remplace(sLigneSélect, TAB, "\") sLigneSélect = Remplace(sLigneSélect, ESC, "") sLigneSélect = Remplace(sLigneSélect, "II", "") sLigneSélect = Remplace(sLigneSélect, "test://", "C:")
sElement est une chaîne = ExtraitChaîne(sLigneSélect, 1, TAB, DepuisFin)
sElement = ExtraitChaîne(sElement, 1, ESC)
sResListeFichier = fListeFichier(sElement + "\*.*", frSansFichierCaché + frNonRécursif)
POUR TOUTE chaîne sUnFichier de sResListeFichier SEPAREE PAR RC SI fExtraitChemin(sUnFichier,fExtension) <> ".sys" ALORS SI fExtraitChemin(sUnFichier, fExtension) <> CONST_LOCK ALORS nTailleFichier est un entier = fTaille(sUnFichier) sTailleFichier est une chaîne SI nTailleFichier < 1024 ALORS sTailleFichier = NumériqueVersChaîne(nTailleFichier) + " octets" SINON SI nTailleFichier >= 1024 ET nTailleFichier < 1048579 ALORS sTailleFichier = NumériqueVersChaîne(Arrondi(nTailleFichier / 1024,2)) + " Ko" SINON SI nTailleFichier >= 1048579 ET nTailleFichier < 1073741824 ALORS sTailleFichier = NumériqueVersChaîne(Arrondi(nTailleFichier / 1048579,2)) + " Mo" SINON SI nTailleFichier >= 1073741824 ALORS sTailleFichier = NumériqueVersChaîne(Arrondi(nTailleFichier / 1073741824,2)) + " Go" FIN FIN FIN FIN sStatutCryptage = INILit("CRYPT", "STATUS", "", sUnFichier + CONST_LOCK) SI sStatutCryptage = "CRYPTED" ALORS TableAjouteLigne(TABLE_PreviewDuContenuLocal, "C:\Mes Projets\P2P\lock.png", fExtraitChemin(sUnFichier,fFichier+fExtension), sTailleFichier, sUnFichier) SINON TableAjouteLigne(TABLE_PreviewDuContenuLocal, "C:\Mes Projets\P2P\lock1.png", fExtraitChemin(sUnFichier,fFichier+fExtension), sTailleFichier, sUnFichier) FIN FIN FIN FIN
Donc, pour chaque clic d'un élément présent dans mon arbre, je modifie le contenu de ma table. Je cherche à, après avoir afficher le contenu d'un dossier, permettre le drop d'un fichier dans la table et pouvoir récupérer le chemin du répertoire en cours pour y copier le fichier droppé :
ExplorerAccepte(Vrai,TABLE_PreviewDuContenuLocal)
sLigneSélect est une chaîne = ArbreSelect(ARBRE_RépertoireLocal, Vrai)
Trace("1 = " + sLigneSélect)
gnNumIdentifiantEvenementDragAndDropWindows = Evénement(RecupFichiers_DND_Windows,TABLE_PreviewDuContenuLocal..NomComplet,WM_DROPFILES)
et ma fonction RecupFichiers_DND_Windows() :
Procedure RecupFichiers_DND_Windows()
nbFic est un entier = ExplorerRécupère(_EVE.wParam) sNomFic est une chaîne
i est un entier POUR i = 1 À nbFic sNomFic=ExplorerRécupère(_EVE.wParam,i) Trace(sNomFic) TableAjouteLigne(TABLE_PreviewDuContenuLocal,sNomFic, sNomFic) FIN
TablePosition(TABLE_PreviewDuContenuLocal, TABLE_PreviewDuContenuLocal..Occurrence)
après test, lors d'un premier drop, ma trace affiche "1 = test://<ESC>I<ESC>I<TAB>test<ESC>I<ESC>I<TAB>archives<ESC>I<ESC>I" (si j'essaie de dropper un fichier dans le répertoire test://test/archive). Cependant, le drop ne s'effectue pas et lors des drops suivants, ils s'affichent dans ma table mais la fonction trace en renvoie plus rien.
Je n'ai pas beaucoup d'expérience en WinDev et je bloque un peu sur ça, merci d'avance |
| |
| |
| | | |
|
| | | | |
| | |
|