Topics   All   Mac OS X (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Guides   Examples
New in version: 7.1   7.2   7.3   7.4   7.5   8.0   8.1   8.2   8.3   8.4    Statistic  

DragDrop.GetPath

Queries the native path of a file drop.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
DragDrop 2.4 Yes Yes No No No

MBS( "DragDrop.GetPath"; droparea { ; index } )

Parameters

Parameter Description Example value
droparea The reference ID for this drop area. Use functions like DragDrop.CreateWithControl to create a drop area. $dropHandle
index Optional
Optional index for the file path. Index goes from 0 to DragDrop.GetPathCount-1.
0

Result

The path or empty value.

Description

Queries the native path of a file drop.
Call this function in the drag action script.

For an email drag from Apple Mail, this function may give the path to a copy of the email file in temporary folder.
Use Path.NativePathToFileMakerPath to convert to a FileMaker path if you plan to use "filemac:" for an insert file script step.
Added Windows support for MBS Plugin 8.1.

Examples

Process paths in Drag & Drop:

Set Variable [ $count ; Value: MBS("DragDrop.GetPathCount"; $dropview) ]
If [ $count > 0 ]
    Set Variable [ $index ; Value: 0 ]
    Loop
        Pause/Resume Script [ Duration (seconds): ,1 ]
        Set Variable [ $path ; Value: MBS("DragDrop.GetPath"; $dropview; $index) ]
        If [ Length ( $path ) > 0 ]
            If [ MBS("Files.FileExists"; $path) = 0 ]
                # File not yet written? Wait a bit
                Pause/Resume Script [ Duration (seconds): 1 ]
            End If
            New Record/Request
            Set Field [ DragTest::field ; MBS("Files.ReadFile"; $path; "auto") ]
            Set Field [ DragTest::Text ; $path ]
            Set Field [ DragTest::Description ; "Got via path list" ]
            Commit Records/Requests [ With dialog: Off ]
        End If
        # next
        Set Variable [ $index ; Value: $index+1 ]
        Exit Loop If [ $index = $count ]
    End Loop
End If

Stores files in records:

Set Variable [ $dropview ; Value: Get(ScriptParameter) ]
Set Variable [ $count ; Value: MBS("DragDrop.GetPathCount"; $dropview) ]
// Show Custom Dialog [ "Number of files: " & $count ]
Set Variable [ $index ; Value: 0 ]
If [ $count > 0 ]
    Loop
        Set Variable [ $OSPfad ; Value: MBS("DragDrop.GetPath"; $dropview; $index) ]
        Set Variable [ $FMPfad ; Value: MBS( "Path.NativePathToFileMakerPath"; $OSPfad) ]
        #
        If [ MBS("Files.FileExists"; $OSPfad) ]
            Go to Layout [ “MIX” ; Animation: None ]
            New Record/Request
            #
            Set Field [ MIX::Path ; $OSPfad ]
            Set Field [ MIX::Name ; MBS( "Path.LastPathComponent"; $OSPfad ) ]
            #
            Go to Field [ MIX::Image ]
            Insert Picture [ Reference ; “$FMPfad” ]
            #
            Commit Records/Requests [ With dialog: Off ]
            Go to Layout [ original layout ; Animation: None ]
        End If
        #
        Set Variable [ $index ; Value: $index+1 ]
        Exit Loop If [ $index = $count ]
    End Loop
End If

See also

Example Databases

Created 18th August 2014, last changed 8th February 2018


DragDrop.GetMouseY   -   DragDrop.GetPathCount

Feedback: Report problem or ask question.




Links
MBS Xojo Chart Plugins