Save File Dialog

Category: Dialogs (built-in)

Date: 02-16-2022

Return to Index


 
'PowerBASIC has a built-in DDT command to access the Windows file save dialog
 
'Primary Code:
'Syntax:  DISPLAY SAVEFILE [hParent], [xpos], [ypos], title$, folder$, filter$, _
                                   'start$, defext$, flags TO filevar$ [,countvar&]
   Display SaveFile hParent, 100, 100, "Save File", folder$, filter$, start$, _
                     defaultext$, flags& To filevar$, countvar&
 
'Multiple file selection:
'If the user selects multiple files, and the flag %OFN_ALLOWMULTISELECT is used
'then filevar$ consists of the path Name (which applies all selected files), followed
'by each of the file names of the selected files. Each of these text items are delimited
'in the returned string by a nul - Chr$(0). You can extract each of the multiple names
'with the PARSE$ function or the PARSE statement.
 
'Flag Options
%OFN_ALLOWMULTISELECT      'Allow multiple selections. Return values are null-terminated names.
%OFN_CREATEPROMPT          'Allow file which does not exist.
%OFN_ENABLESIZING          'Dialog Is resizable.
%OFN_EXPLORER              'Explorer style interface (default state).
%OFN_FILEMUSTEXIST         'File name must exist.
%OFN_NOCHANGEDIR           'Maintains current directory regardless of user selection.
%OFN_NODEREFERENCELINKS    'Returns of name shortcut file.
%OFN_NONETWORKBUTTON       'Hides and disables the network button.
%OFN_NOTESTFILECREATE      'File not created before the dialog Is closed.
%OFN_NOVALIDATE            'File name not validated For invalid characters.
%OFN_PATHMUSTEXIST         'Allows only valid paths and filenames.
%OFN_OVERWRITEPROMPT       'User may select a filename that already exists
%OFN_SHAREWARE             'Returns network filename even if sharing violation occurs.
%OFN_SHOWHELP              'The Help button is shown
 
'Compilable Example:  (Jose Includes)
'NOTE: see the commented lines for several ways in which to handle file display filters
#Compiler PBWin 9, PBWin 10
#Compile EXE
#Dim All
%Unicode=1
Global hDlg As DWord
 
Function PBMain() As Long
   Local hParent as DWord, title$, folder$, filter$, start$, defaultext$, flags&, filevar$, countvar&
   hParent = hDlg              'if not parent, use 0 or %hWnd_Desktop
   title$ = "Save File As"     'if "", then "Save As" is used
   folder$ = "c:\"             'if "", then current directory is used
   filter$ = Chr$("PowerBASIC", 0, "*.bas", 0)    'same as:  "BASIC" + $Nul + "*.bas" + $Nul
   'filter$ consists of pairs of $Nul terminated description/pattern values
   'filter$ example:    Chr$("All Files", 0, "*.*", 0)
   'filter$ example:    Chr$("BASIC", 0, "*.bas;*.inc;*.bak", 0)
   'filter$ example:    Chr$("Bitmap Files", 0, "*.bmp", 0, "All Files", 0, "*.*", 0)
   start$ = ""               'starting filename
   defaultext$ = "bas"
   flags& = %OFN_PATHMUSTEXIST Or %OFN_EXPLORER Or %OFN_OVERWRITEPROMPT
   Display SaveFile hParent, 100, 100, "Save File", folder$, filter$, start$, _
      defaultext$, flags& To filevar$, countvar&
   '  filevar$ contains name of filename to use for Save
   '  countvar$ contains number of files selected
   '  if no file is selected, filevar$ = ""
   If Len(filevar$) Then
      MsgBox filevar$
   Else
      MsgBox "No filename provided or selected!"    'ESC or Cancel
   End If
End Function
 
'gbs_00120
'Date: 03-10-2012


created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm