Tips

ファイルのドラッグ&ドロップ

日付2011/07/01
ID76344 (英語原文参照)
バージョンv12
プラットフォームMac/Win

デスクトップなどから複数のファイルが4Dのフォームオブジェクトにドラッグ&ドロップされた場合, それらのファイルパスは下記のようなコードで配列に取ることができます。

C_POINTER($srcObject_P)
C_LONGINT($srcElement_L;$srcProcess_L;$Ndx)

DRAG AND DROP PROPERTIES($srcObject_P;$srcElement_L;$srcProcess_L)
If (Not(Nil($srcObject)))


Else 
   ARRAY TEXT($4Dsignatures;0)
   ARRAY TEXT($nativeTypes;0)
   ARRAY TEXT($ormatNames;0)

   GET PASTEBOARD DATA TYPE($4Dsignatures;$nativeTypes;$formatNames)
   If (Find in array($4Dsignatures;"com.4d.private.file.url")>0)
        //
        // Handle 4D signature for a file pathname
        //
       ARRAY TEXT($filesArray;0)
       C_TEXT($filePath_T)
       $Ndx:=1
       Repeat 
          $filePath_T:=Get file from pasteboard($Ndx)
          If ($filePath_T#"")
             APPEND TO ARRAY($filesArray;$filePath_T)
             $Ndx:=$Ndx+1
          End if 
       Until ($filePath_T="")

       If (Size of array($filesArray)>0)
           //
           // Test external file pathnames for processing
           //
       End if
   Else 
    //
    // Handle other 4D signatures
    //
   End if 
End if