papyvore
Messages postés223Date d'inscriptionsamedi 15 novembre 2003StatutMembreDernière intervention16 décembre 2021
-
Modifié le 9 sept. 2020 à 17:13
papyvore
Messages postés223Date d'inscriptionsamedi 15 novembre 2003StatutMembreDernière intervention16 décembre 2021
-
10 sept. 2020 à 18:50
Bonjour,
Je fais un drag d' Explorer vers StringGrid tout ce passe bien, mais depuis un téléphone
StringGrid refuse le drag
ci-dessous le code que j'utilise.
procedure TFormBackUp.FormCreate(Sender: TObject);
begin
DragAcceptFiles(StringGrid1.Handle, True);
Application.OnMessage := TraiteMessage;
// c'est la procédure TraiteMessage qui va traiter les messages
end;
procedure TFormBackUp.TraiteMessage(var Msg: TMsg; var Handled: Boolean);
var
NombreDeFichiers, size, i: integer;
NomDuFichierStr: string;
NomDuFichier: array [0 .. 255] of char;
begin
if Msg.message = WM_DROPFILES then
begin
NombreDeFichiers := DragQueryFile(Msg.wParam, $FFFFFFFF, NomDuFichier,
SizeOf(NomDuFichier)); // récupération du nombre de fichiers
for i := 0 to NombreDeFichiers - 1 do
begin
size := DragQueryFile(Msg.wParam, i, NomDuFichier, SizeOf(NomDuFichier));
// récupération du nom du fichier
NomDuFichierStr := NomDuFichier;
// tansformation du tableau de char en STRING
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cells[0, StringGrid1.RowCount - 1] :=
ExtractFileDrive(NomDuFichierStr);
StringGrid1.Cells[1, StringGrid1.RowCount - 1] :=
ExtractFilePath(NomDuFichierStr);
StringGrid1.Cells[2, StringGrid1.RowCount - 1] :=
ExtractFileName(NomDuFichierStr);
if not FileExists(NomDuFichierStr) then
StringGrid1.Cells[3, StringGrid1.RowCount - 1] :=
floattostrf(TailleDossier(NomDuFichierStr,'*.*',faAnyFile) div 1024, ffNumber, 7,0)+' kb'
else
StringGrid1.Cells[3, i] :=
floattostrf(TailleFichierr(NomDuFichierStr) div 1024, ffNumber, 7,0)+' kb';
end;
end;
Jusque là je n'ai pas trouvé ni sur le site ni avec google
connaissez vous une solution ???
merci.
Si c'est pour associer une extension de fichier à une application, il faut en revanche utiliser les API de l'OS. Sur Android ça consiste à ajouter des déclarations dans le manifest et gérer un événement au niveau de l'application.
papyvore
Messages postés223Date d'inscriptionsamedi 15 novembre 2003StatutMembreDernière intervention16 décembre 202115 10 sept. 2020 à 13:03
je me suis mal exprimé.
c'est pas du fmx.
c'est simplement un drag vcl du téléphone (branché usb)vers ma stringgrid.
pprem
Messages postés30Date d'inscriptionsamedi 5 septembre 2020StatutMembreDernière intervention22 octobre 20201
>
papyvore
Messages postés223Date d'inscriptionsamedi 15 novembre 2003StatutMembreDernière intervention16 décembre 2021 10 sept. 2020 à 15:54
ok, je comprends mieux
il est possible que le système de fichiers ne gère pas le partage du disque d'appareils extérieurs comme il le fait pour des fichiers locaux
pprem
Messages postés30Date d'inscriptionsamedi 5 septembre 2020StatutMembreDernière intervention22 octobre 20201 10 sept. 2020 à 18:29
Donc ça doit être ça : Windows ne déclenche pas le vrai drag&drop et ne le gère que pour lui.
Est-ce que le drag&drop d'une photo depuis le smartphone peut s'ouvrir dans un logiciel de dessin qui accepterait cette opération depuis l'explorateur de fichiers ? Si c'est KO, faut partir du principe que ce n'est pas géré par le driver du téléphone, si c'est OK, il faudrait espionner le système pour voir quels messages transitent.
Vous n’avez pas trouvé la réponse que vous recherchez ?
papyvore
Messages postés223Date d'inscriptionsamedi 15 novembre 2003StatutMembreDernière intervention16 décembre 202115 10 sept. 2020 à 18:50
je viens d'essayer avec XnView qui accepte les drag depuis windows ça marche.
mais depuis le telephone j'ai exactement la même erreur.
bon merci je vais voir comment intercepter le message et la, c'est pas gagné ,merci de t'être intéressé à cette question.
9 sept. 2020 à 12:52