14 October 2019

Update v 2.57 and Find in Files

On October the 7th I released version 2.57 of GFA-BASIC 32. It fixes problems in GfaWin32.exe (the IDE), gfawin32.gll, GfaWin23.ocx (the runtime) and the manifest file.

  • The GfaWin32.exe now properly handles the *Call()() functions like (L)StdCall and (L)CCall that take coercion modifiers like Dbl:, Sng:, etc. in the parameterlist.
  • The new GfaWin23.ocx version 2.36 fixes DlgBase Inside and DlgBase Outside, that were swapped. This is important if you want to use the Dialog command together with a dialog definition from an external program like I showed in Using Unicode Controls.
  • The gfawin32.gll has undergone some maintenance and should be even more stable. PeekView in the editor (while editing, not when running) is now optional solving to prevent the sudden appearance of large boxes of info. When disabled use right mouseclick on a word to obtain instant help. However, by disabling PeekView you will be missing instant help for variables and procedures.
  • Also updated is gfawinx.lg32 found in the Include directory (together with its source file). It is extended with some new functions and procedures. All of its procedures and functions are displayed in the GFA-BASIC command and function syntax colors and are discussed in the English helpfile. Gfawinx contains some essential functions like a new version helper function that indicates on what version of Windows the application is running. The return value depends on the enabled OS-es in the manifest file, which is updated now to ‘unlock’ features of all Windows OS-es.
  • The manifest file that comes with GfaWin32.exe is now also included as a resource in the compiled EXE (unless the program includes the $ManifestOff directive). The advantage is obvious, the manifest used to develop the application inside the IDE is now the same as used in the resulting EXE.

For more information about the update please see the readme25.rtf available from the Start menu.

Find In Files
Another GLL that has been updated is the findfiles.gll extension that can be installed from the GFA-BASIC home directory. From the main menubar choose Extra | Extension Manager and click the Add button and then select findfiles.gll. After it is loaded it inserts itself in the Edit submenu, where you’ll find it in the Find & Replace submenu, but you can also start it with Shift+Ctrl+F.

The findfiles.gll is a dialog based editor extension developed and tested from inside the IDE, the structure of the program helps to quickly edit and run in the IDE. This way it isn’t necessary to compile the extension and than load it with the Extension Manager to test.

The source code can be found here.

Find in Files enables you to locate a string in a group of files and folders. After locating the files a search result can be opened in an application of your choice:

In the Find what box, type the string you want to find (the button to the right is not functional). The search string may not contain wildcards. In the Look in box specify the folder where you want to begin the search. Use the Browse button to the right of the box to display a dialog where you can navigate to the folder you want. You can search recursively through a directory structure by selecting the Include subdirectories check box. In the Look at these file types box, specify the types of files in which you want to search. To limit the list of search results only 5 results per file are displayed.
You can perform a regular expression search if the corresponding checkbox is selected. The Find What string must specify a GFA-BASIC 32 regular expression as discussed in the reMatch command topic in the GFA-BASIC 32 helpfile.
Click Find now to start searching. You may abort the search any time by clicking the button again or by pressing Esc

Together with Incremental Search (Shift+Ctrl+I) the Find in Files feature is my most often used utility to locate information. Incremental Search locates a word very fast in the current GB file and Find In Files does the same job in external files.