Permet aussi de coller le contenu si CF_HDROP

denisBilog - Modifié le 22 févr. 2022 à 16:26
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 - 22 févr. 2022 à 18:06
A partir de la demande de Guillaume Romain qui a observé que la commande Copier un nom de fichier ne produisait pas la commande Coller quand un nom de fichier pour un fichier Jpeg par exemple était copié depuis le menu Popup de l'explorateur des fichiers.
          f := GetclipBoardData(CF_HDROP);
          f := Clipboard.GetAsHandle(CF_HDROP);
          if f <> 0 then
            begin
            maximum:=0; ficelle:='';
            numFiles:=DragQueryFile(f,$FFFFFFFF,nil,0);
            for i := 0 to numfiles - 1 do
              begin
              buffer[0] := #0;
              DragQueryFile(f,i,buffer,SizeOf(buffer));
              strlower(strpcopy(pc_extension,ExtractFileName(strpas(buffer))));
              if (strpos(pc_extension,wmenuk.point_jpg)<>nil)
              or (strpos(pc_extension,wmenuk.point_jpeg)<>nil)
              or (strpos(pc_extension,wmenuk.point_gif)<>nil)
              or (strpos(pc_extension,wmenuk.point_tga)<>nil)
              or (strpos(pc_extension,wmenuk.point_bmp)<>nil)
              or (strpos(pc_extension,wmenuk.point_png)<>nil) then
                begin
                if wutil.file_existe(buffer) then
                  begin
                  inc(maximum,wutil.file_size(buffer));
                  Self.Lecture_d_un_fichier_image_open_image_file(buffer,false)
                  end
                else
                  k_erreur.MessageBox_printf(self.hwindow,
                    k_erreur.Tell_je_ne_trouve_rien_sur_ce_peripherique,mb_ok or mb_iconstop,buffer); {cela va de soi...}
                end;
              if strpos(pc_extension,wmenuk.point_svg)<>nil then
               Ouvrir_un_svg(buffer);
              end; {for i}
            if numFiles=1 then ficelle:='"'+strpas(buffer)+'"';
            if maximum<>0 then
              unit_menu.Prevoir_la_taille_du_fichier(unit_menu.TPEV_Ouvrir,maximum,ficelle);
            end;
        finally
          Clipboard.Close;
       end;

1 réponse

Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 656
22 févr. 2022 à 18:06
BONJOUR si si un peu de politesse c'est toujours apprécié...

Imagine que ton boulanger te demande si tu préfères le pain blanc ou complet.
Tu sors de la boulangerie et entres dans la boucherie en disant à qui veut l'entendre "Complet bien sûr ».

Personne ne va comprendre.

C'est exactement ce que tu as fait sur ce forum en cliquant sur le bouton vert "Posez votre question". Pour répondre à une discussion il faut cliquer sur le bouton ROUGE "Répondre" ou encore plus simplement écrire dans la boite de texte placée en bas de la page

Si ce bouton ou cette boite de texte ne sont pas visibles, c'est que la discussion est close et qu'on ne peut plus y répondre.
En ce cas un lien vers la discussion d’origine est indispensable pour comprendre ce que tu racontes.

0
Rejoignez-nous