diff --git a/-GoFish-.fpw b/-GoFish-.fpw new file mode 100644 index 0000000..b4a01e8 --- /dev/null +++ b/-GoFish-.fpw @@ -0,0 +1,3 @@ +RESOURCE = 'FOXUSER_9.dbf' +COMMAND = DO -GoFish.prg +*TEDIT = /N "C:\Program Files\IDM Computer Solutions\UEStudio\UEStudio.exe" \ No newline at end of file diff --git a/-GoFish.prg b/-GoFish.prg new file mode 100644 index 0000000..bbb2dc4 --- /dev/null +++ b/-GoFish.prg @@ -0,0 +1,40 @@ +LOCAL; + lcProg AS CHARACTER,; + lcBase AS CHARACTER + +*Bestimme Pfad +lcProg = SYS(16) +lcBase = JUSTPATH(m.lcProg) + +DO WHILE !EMPTY(m.lcBase) + IF DIRECTORY(m.lcBase+'\Tools') THEN +*gefunden + EXIT + ENDIF &&DIRECTORY(m.lcBase+'\Tools') + + lcBase = JUSTPATH(m.lcBase) +ENDDO &&WHILE !EMPTY(m.lcBase) + +DO CASE + CASE !EMPTY(m.lcBase) +*done + CASE DIRECTORY('E:\SE\Tools') + lcBase = 'E:\SE' + CASE DIRECTORY('E:\Tools') + lcBase = 'E:' + CASE DIRECTORY(JUSTDRIVE(m.lcProg)+'\SE\Tools') + lcBase = JUSTDRIVE(m.lcProg)+'\SE' + CASE DIRECTORY(JUSTDRIVE(m.lcProg)+'\Tools') + lcBase = JUSTDRIVE(m.lcProg) +ENDCASE + +*Men nach Path laden (.mpr ist im Pfad) +IF !EMPTY(m.lcBase) THEN + DO lcBase+'\TOOLS\Start_Project.prg' WITH; + lcProg,; + '',; + RGB(236,94,236),; + RGB(000,000,000),; + 'Source\Images\Fish13.ico',; + ' - Go! Fish!' +ENDIF &&!EMPTY(m.lcBase) diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fe569f8 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# disable newline conversion on checkout with no conversion on check-in for all files +* -text diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..c7a5e8e --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,40 @@ +# How to contribute to GoFish + +## Report a bug +- Please check [issues](https://github.com/VFPXGoFish/issues) if the bug has already been reported. +- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring. + +## Fix a bug or add an enhancement +- Fork the project: see this [guide](https://www.dataschool.io/how-to-contribute-on-github/) for setting up and using a fork. + - If already forked, pull the recent state, or get most recent version otherwise. +- Make whatever changes are necessary. +- In **[docs\ChangeLog.md](/docs/ChangeLog.md)** add a description of the changes . See previous changes. + +*** +The steps in this section only apply if you intend to merge your changes immediately into the master repository for Thor. This can only happen if you have access to do so and you are sure that your changes do not need any further testing by others. If you do not intend to merge into the master repository or are in any way unsure what this means, skip all steps in this section. + +1. In **Source\BuildGoFish.prg**, available in the project, update two files: + * VersionNumber.txt + * BuildNumber.txt +1. On top of **[readme.md](/readme.md)**, change: + * Version number + * Date +1. In **Source\Changelog_Thor.txt**, copy the changes of the recent (and only the recent) version. File is available in the project. + * If there is more documentation, alter appropriate files + * In the footer of any file changed, alter date. +1. Run **Source\BuildGoFish.prg** to + * update several files + * build GoFish.app + * generate the text equivalents for all VFP binary files (SCX, VCX, DBF, etc.) using FoxBin2PRG. + > **Note: use VFP 9 SP2 rather than VFP Advanced to run BuildGoFish.prg since GoFish.app must be built in VFP rather than VFPA for compatibility for all users.** +1. **Close the project** +1. In File Explorer, right-click **Source\BuildCloudZip.ps1** and choose *Run with PowerShell* to create Source.zip. + +*** + +- Commit the changes. +- Push to your fork. +- Create a pull request; ensure the description clearly describes the problem and solution or the enhancement. + +---- +Last changed: 2024-02-25 ![](../docs/pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..bdf3d94 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,39 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +## ℹ Computer information + +- VFP version: +- GoFish version: #.#.# + +## 📝 Provide detailed reproduction steps (if any) + +1. … +2. … +3. … + +### ✔️ Expected result + +_What is the expected result of the above steps?_ + +### ❌ Actual result + +_What is the actual result of the above steps?_ + +## 📷 Debugging Info +Please add screenshots of +- Error Message +- Windows from the debugger + - Trace window + - Locals window + - Call stack window + +## 📷 Screenshots + +_Are there any other useful screenshots? WinKey+Shift+S and then just paste them directly into the form_ diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..ea94cab --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,16 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +## 📝 Provide a description of the new feature + +_What is the expected behavior of the proposed feature? What is the scenario this would be used?_ + +--- + +If you'd like to see this feature implemented, add a 👍 reaction to this post. diff --git a/.gitignore b/.gitignore index e2a0d74..e1d0fb4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,21 @@ -/Source/DeployGoFish.ps1 -/Source/DeployGoFish_Source.ps1 -/Source/DeployGoFish.bat -*.bak -*.BAK -FOXUSER.* -*_ref.* -*.err -*.fxp -*.fxp -*.zip -*.ZIP -/Source/tempview.* -/Source/temptext.* \ No newline at end of file +/Source/DeployGoFish.ps1 +/Source/DeployGoFish_Source.ps1 +/Source/DeployGoFish.bat +*.bak +*.BAK +FOXUSER*.* +*_ref.* +*.err +*.fxp +*.fxp +# *.zip +# *.ZIP +_command.prg +/Source/tempview.* +/Source/temptext.* + +#special SF: +-*.fpw* +-gofish.prg +bin2txt.* +/data/ \ No newline at end of file diff --git a/GoFish.prg b/GoFish.prg new file mode 100644 index 0000000..d8d9c0f --- /dev/null +++ b/GoFish.prg @@ -0,0 +1,40 @@ +LOCAL; + lcProg AS CHARACTER,; + lcBase AS CHARACTER + +*Bestimme Pfad +lcProg = SYS(16) +lcBase = JUSTPATH(m.lcProg) + +DO WHILE !EMPTY(m.lcBase) + IF DIRECTORY(m.lcBase+'\Tools') THEN +*gefunden + EXIT + ENDIF &&DIRECTORY(m.lcBase+'\Tools') + + lcBase = JUSTPATH(m.lcBase) +ENDDO &&WHILE !EMPTY(m.lcBase) + +DO CASE + CASE !EMPTY(m.lcBase) +*done + CASE DIRECTORY('E:\SE\Tools') + lcBase = 'E:\SE' + CASE DIRECTORY('E:\Tools') + lcBase = 'E:' + CASE DIRECTORY(JUSTDRIVE(m.lcProg)+'\SE\Tools') + lcBase = JUSTDRIVE(m.lcProg)+'\SE' + CASE DIRECTORY(JUSTDRIVE(m.lcProg)+'\Tools') + lcBase = JUSTDRIVE(m.lcProg) +ENDCASE + +*Men nach Path laden (.mpr ist im Pfad) +IF !EMPTY(m.lcBase) THEN + DO lcBase+'\TOOLS\Start_Project.prg' WITH; + lcProg,; + '',; + RGB(255,183,255),; + RGB(000,000,000),; + 'Source\Images\Fish13.ico',; + ' - Go! Fish!' +ENDIF &&!EMPTY(m.lcBase) diff --git a/GoFish5.APP - Shortcut.lnk b/GoFish5.APP - Shortcut.lnk deleted file mode 100644 index 040d4d6..0000000 Binary files a/GoFish5.APP - Shortcut.lnk and /dev/null differ diff --git a/Screenshots/GoFish 4.1 Alpa 1 Update Notes.md b/Screenshots/GoFish 4.1 Alpa 1 Update Notes.md index 783a330..11ef3e3 100644 --- a/Screenshots/GoFish 4.1 Alpa 1 Update Notes.md +++ b/Screenshots/GoFish 4.1 Alpa 1 Update Notes.md @@ -1,29 +1,29 @@ -**GoFish 4.1 Alpha 1 Update Notes:** - -Because this build includes a new, powerful feature for REPLACING code on your source files, it is considered an Alpha version at this time. Please help by testing out this build and reporting any problems. - -Note: To perform Replace actions with GoFish you must enable this feature on the Replace tab of the Options page. Also, [BE SURE TO READ ALL THE NOTES ABOUT THE RISKS OF DOING REPLACES](GoFish-Replace-Help), for important information about using GoFish to perform replaces on your code. - -**New features in 4.1 Alpha 1** - 1. Added new feature to perform mass Replaces on code search matches. - 2. Added new feature to perform single line edits on code search matches. - 3. Added a Progress Bar to the main form to show progress of search. - 4. The Search Expression can now contain preceding and trailing spaces. - 5. Enhanced search results are now gathered when searching FRX Report files. - - -**Changes / Fixes from Ver 4 Beta 1:** - - 1. Fixed FileDate info on text-based files. - 2. Fixed Ascending/Descending sorting when clicking on column headers. - 3. Now using BindEvent to bind grid headers to SortColumn() method. - 4. Fixed small bug in file template matching on Advanced page. - 5. The Results form and the Search form now use an EditBox for the Search text, rather than TextBoxes. - 6. The My.Settings.Load() method has a custom code line from the publicly released version to prevent the Load() method from stripping of whitespaces. - 7. Added new MatchType to replace Reserved7 with - 8. Added new MatchType to replace Reserved8 with - 9. Fixed a bug to prevent crashing when attempting to search a text file that is locked by another app. -10. Fixed Regular Expression searching to automatically include 'beginning of line' and 'end of line' to the entered search expression. - - - +**GoFish 4.1 Alpha 1 Update Notes:** + +Because this build includes a new, powerful feature for REPLACING code on your source files, it is considered an Alpha version at this time. Please help by testing out this build and reporting any problems. + +Note: To perform Replace actions with GoFish you must enable this feature on the Replace tab of the Options page. Also, [BE SURE TO READ ALL THE NOTES ABOUT THE RISKS OF DOING REPLACES](GoFish-Replace-Help), for important information about using GoFish to perform replaces on your code. + +**New features in 4.1 Alpha 1** + 1. Added new feature to perform mass Replaces on code search matches. + 2. Added new feature to perform single line edits on code search matches. + 3. Added a Progress Bar to the main form to show progress of search. + 4. The Search Expression can now contain preceding and trailing spaces. + 5. Enhanced search results are now gathered when searching FRX Report files. + + +**Changes / Fixes from Ver 4 Beta 1:** + + 1. Fixed FileDate info on text-based files. + 2. Fixed Ascending/Descending sorting when clicking on column headers. + 3. Now using BindEvent to bind grid headers to SortColumn() method. + 4. Fixed small bug in file template matching on Advanced page. + 5. The Results form and the Search form now use an EditBox for the Search text, rather than TextBoxes. + 6. The My.Settings.Load() method has a custom code line from the publicly released version to prevent the Load() method from stripping of whitespaces. + 7. Added new MatchType to replace Reserved7 with + 8. Added new MatchType to replace Reserved8 with + 9. Fixed a bug to prevent crashing when attempting to search a text file that is locked by another app. +10. Fixed Regular Expression searching to automatically include 'beginning of line' and 'end of line' to the entered search expression. + + + diff --git a/Screenshots/GoFishSearchEngine.md b/Screenshots/GoFishSearchEngine.md index 864a477..46819bd 100644 --- a/Screenshots/GoFishSearchEngine.md +++ b/Screenshots/GoFishSearchEngine.md @@ -1,62 +1,62 @@ -# GoFish Search Engine Class -_This class is available in the source code download of [Release: GoFish](67852)._ - -Most people don't realize that GoFish 4 is really just a pretty UI form wrapped around a powerful Search Engine Class. - -With the GoFish Search Engine Class, you can programmatically perform searches on code paths or projects, or any blob of text from anywhere you can dig it up. So, using the GoFish Search Engine Class, you can add complex searching to any business app or other FoxPro IDE tools, without ever using the default UI form that we use from the FoxPro IDE. - -It basically works like this: - -{{ -*-- Create and object instance of the GoFish Search Engine class-- -loSearchEngine = CreateObject('GoFishSearchEngine') -loSearchEngine.cSearchResultsAlias = 'MyCursor' - -*-- Configure it-- -With loSearchEngine.oSearchOptions - .cSearchExpression = 'test' - .lRegularExpression = .f. - .lMatchWholeWord = .t. - .lMatchCase = .f. - .lSearchInComments = .t. - - .lCreateResultsCursor = .t. - .lCreateResultsCollection = .t. - - .lShowErrorMessages = .f. && Controls displaying errors in a MessageBox - .lShowWaitMessages = .f. - .lShowNoMatchesMessage = .f. -EndWith - -*-- Perform a search ----------------- - loSearchEngine.oSearchOptions.lIncludeSubdirectories = .t. - loSearchEngine.SearchInPath(‘C:\Source\Project1\’) -}} - -**What next?** -Well, all the search results from that search now live in the cursor ‘MyCursor’ that **you** specified. Now you can do whatever you want with that cursor. And, if you want to perform another search (for a different word), all you've got to to is change the property _loSearchEngine.oSearchOptions.cSearchExpression_ to a new value, and run the search again. The cursor will be rebuilt under the same name: - -{{ -loSearchEngine.oSearchOptions.cSearchExpression = 'test2' -loSearchEngine.SearchInPath(‘C:\Source\Project1\’) -}} - -The GFSE can also create a Collection object with the results if you prefer to work with collections rather than cursors. - -**See this link for more samples:** [http://codepaste.net/8srdb8](http://codepaste.net/8srdb8) - - -**Here is a complete list of the Properties on GFSE:** - -![](GoFishSearchEngine_ GFSE_Properties.jpg) - - - -**Here is a complete list of the Methods on GFSE:** - -![](GoFishSearchEngine_ GFSE_Methods.jpg) - - -**Finally, here is the properties on the Options class used by GFSE to fine tune the search:** - -![](GoFishSearchEngine_ GFSE_Options.jpg) +# GoFish Search Engine Class +_This class is available in the source code download of [Release: GoFish](67852)._ + +Most people don't realize that GoFish 4 is really just a pretty UI form wrapped around a powerful Search Engine Class. + +With the GoFish Search Engine Class, you can programmatically perform searches on code paths or projects, or any blob of text from anywhere you can dig it up. So, using the GoFish Search Engine Class, you can add complex searching to any business app or other FoxPro IDE tools, without ever using the default UI form that we use from the FoxPro IDE. + +It basically works like this: + +{{ +*-- Create and object instance of the GoFish Search Engine class-- +loSearchEngine = CreateObject('GoFishSearchEngine') +loSearchEngine.cSearchResultsAlias = 'MyCursor' + +*-- Configure it-- +With loSearchEngine.oSearchOptions + .cSearchExpression = 'test' + .lRegularExpression = .f. + .lMatchWholeWord = .t. + .lMatchCase = .f. + .lSearchInComments = .t. + + .lCreateResultsCursor = .t. + .lCreateResultsCollection = .t. + + .lShowErrorMessages = .f. && Controls displaying errors in a MessageBox + .lShowWaitMessages = .f. + .lShowNoMatchesMessage = .f. +EndWith + +*-- Perform a search ----------------- + loSearchEngine.oSearchOptions.lIncludeSubdirectories = .t. + loSearchEngine.SearchInPath(‘C:\Source\Project1\’) +}} + +**What next?** +Well, all the search results from that search now live in the cursor ‘MyCursor’ that **you** specified. Now you can do whatever you want with that cursor. And, if you want to perform another search (for a different word), all you've got to to is change the property _loSearchEngine.oSearchOptions.cSearchExpression_ to a new value, and run the search again. The cursor will be rebuilt under the same name: + +{{ +loSearchEngine.oSearchOptions.cSearchExpression = 'test2' +loSearchEngine.SearchInPath(‘C:\Source\Project1\’) +}} + +The GFSE can also create a Collection object with the results if you prefer to work with collections rather than cursors. + +**See this link for more samples:** [http://codepaste.net/8srdb8](http://codepaste.net/8srdb8) + + +**Here is a complete list of the Properties on GFSE:** + +![](GoFishSearchEngine_ GFSE_Properties.jpg) + + + +**Here is a complete list of the Methods on GFSE:** + +![](GoFishSearchEngine_ GFSE_Methods.jpg) + + +**Finally, here is the properties on the Options class used by GFSE to fine tune the search:** + +![](GoFishSearchEngine_ GFSE_Options.jpg) diff --git a/Screenshots/LookUpReference.png b/Screenshots/LookUpReference.png new file mode 100644 index 0000000..9ccf7a9 Binary files /dev/null and b/Screenshots/LookUpReference.png differ diff --git a/Source/BuildCloudZip.ps1 b/Source/BuildCloudZip.ps1 index 6d094cd..76900c2 100644 --- a/Source/BuildCloudZip.ps1 +++ b/Source/BuildCloudZip.ps1 @@ -1,81 +1,71 @@ -# This script builds a ZIP file to be uploaded to the FTP site to distribute GoFish5 through -# Thor Check For Updates. -# Github: https://github.com/mattslay/GoFish -# email: MattSlay@jordanmachine.com for assistance with GoFish5 and assistance with distributing - -Clear-Host - -#=== Variable definitions ========================================= -$sourceFolder = "H:\Work\Repos\GoFish\Source\" -$localVersionFile = "GoFishVersionFile.txt" -$cloudVersionFile = "_GoFishVersionFile.txt" - -$beta = $false - -If ($beta -eq $true) { - $appName = "GoFish4_Beta" - $zipFile = "GoFish4_Beta.zip" - $appFile = "GoFish4_Beta.app" - $ftpServerPath = "mattslay.com/VFP/GoFish4/Beta/" -} -else { - $appName = "GoFish5" - $zipFile = "GoFish5.zip" - $appFile = "GoFish5.app" - $ftpServerPath = "mattslay.com/VFP/GoFish5/" +$exclude = "*.bak,*.bat,*.fxp,*.zip" +# Ensure no spaces before or after comma +$excludeFiles = $exclude.Split(',') +# Ensure no spaces before or after comma +$exclude = "*Documentation*" +$excludeFolders = $exclude.Split(',') + +# Get the name of the zip file. +$zipFileName = "Source.zip" + +try +{ + # Delete the zip file if it exists. + $exists = Test-Path ($zipFileName) + if ($exists) + { + del ($zipFileName) + } + + # Loop through all the files in the project folder except those we don't want + # and add them to a zip file. + # See https://stackoverflow.com/questions/15294836/how-can-i-exclude-multiple-folders-using-get-childitem-exclude + # for how to exclude folders when -Recurse is used + + $files = @(Get-ChildItem . -recurse -file -exclude $excludeFiles | + %{ + $allowed = $true + foreach ($exclude in $excludeFolders) + { + if ((Split-Path $_.FullName -Parent) -ilike $exclude) + { + $allowed = $false + break + } + } + if ($allowed) + { + $_ + } + } + ); + + # See https://stackoverflow.com/questions/51392050/compress-archive-and-preserve-relative-paths to compress + + # exclude directory entries and generate fullpath list + $filesFullPath = $files | Where-Object -Property Attributes -CContains Archive | ForEach-Object -Process {Write-Output -InputObject $_.FullName} + + #create zip file + Add-Type -AssemblyName System.IO.Compression, System.IO.Compression.FileSystem + $zip = [System.IO.Compression.ZipFile]::Open((Join-Path -Path $(Resolve-Path -Path ".") -ChildPath $zipFileName), [System.IO.Compression.ZipArchiveMode]::Create) + + #write entries with relative paths as names + foreach ($fname in $filesFullPath) + { + $rname = $(Resolve-Path -Path $fname -Relative) -replace '\.\\','' + $zentry = $zip.CreateEntry($rname) + $zentryWriter = New-Object -TypeName System.IO.BinaryWriter $zentry.Open() + $zentryWriter.Write([System.IO.File]::ReadAllBytes($fname)) + $zentryWriter.Flush() + $zentryWriter.Close() + } + + # clean up + Get-Variable -exclude Runspace | Where-Object {$_.Value -is [System.IDisposable]} | Foreach-Object {$_.Value.Dispose(); Remove-Variable $_.Name}; } -Write-Host "ZIP Package builder - " + $appName -Write-Host "" - -set-location $sourceFolder -If (Test-Path $zipFile){ - remove-item $zipFile -} - -#--- Create fully qualified paths to filenames -$p = $PWD.path + "\" -$localZipFile = $p + $zipFile -$localAppFile = $p + $appFile -$localVersionFile = $p + $localVersionFile - -#--- Create an empty ZIP file --- -set-content $zipFile ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18)) -(dir $zipFile).IsReadOnly = $false - -#--- Prepare to add files to the Zip --- -"Building Zip" -$shellApplication = new-object -com shell.application -$zipPackage = $shellApplication.NameSpace($localZipFile) - -#-- Add local version file to Zip --- -$zipPackage.CopyHere($localVersionFile) -Start-Sleep -Milliseconds 10 - -#-- Add .app file to Zip --- -$zipPackage.CopyHere($localAppFile) -Start-Sleep -Milliseconds 1000 -"" - - - -#--- Display results summary ---------------------------- -If ($zipPackage.Items().Count -eq 2) +catch { - "ZIP File Created: " + $zipFile - "" - "Contents:" - " " + $localAppFile - " " + $localVersionFile - "" - "You must now upload the ZIP and '_GoFishVersionFile.txt' to the FTP endpoint for distribution through Thor.." - -} -else -{ - "File count in ZIP is not correct." + Write-Host "Error occurred at $(Get-Date): $($Error[0].Exception.Message)" + pause } - - - - diff --git a/Source/BuildGoFish.PRG b/Source/BuildGoFish.PRG index db82720..1f92243 100644 --- a/Source/BuildGoFish.PRG +++ b/Source/BuildGoFish.PRG @@ -1,157 +1,140 @@ -#INCLUDE BuildGoFish.h - -Local lcApplicationName, lcBetaFolder, lcBootStrap, lcBuild, lcBuildDate, lcBuildGoFishHeaderFile -Local lcCloudVersionFileContents, lcDate, lcDownloadUrl, lcErrorFile, lcGoFishHomePage, lcHgData -Local lcIncludeFileText, lcMercurialVersionFile, lcMonthDay, lcProject, lcSourceLoc, lcVersion -Local lcVersionFileContents, lcVersionFileURL, lcVersionLocalFile, lcVersionStringForVersionFile -Local lcAppFile, lcWindowTitle, lcYear, llBuildAsBeta, lnCurrentVersion, lcSafety, lcCloudVersionFile - -*!* ******************** Removed 10/27/2015 ***************** -*!* Release All -*!* Clear All - -lcSafety = Set('Safety') -Set Safety Off - -lcSourceLoc = Addbs(JustPath(Sys(16))) && Change this to location of source files -Cd (lcSourceLoc) - -*== Most of these local variables will make their way into BuildGoFish.h -lcVersion = '5.0' -lcBuild = '170' && <---- Set your desired version level of the tool here - && This will be used on the GoFish form and will live on the - && the _GoFish object that gets attached to _Screen at run time. - -lcApplicationName = 'GoFish5' -lcVersionLocalFile = 'GoFishVersionFile.txt' -lcVersionFileURL = 'http://foxpro.mattslay.com/GoFish5/_GoFishVersionFile.txt' -lcDownloadUrl = 'http://bit.ly/GoFish5' -lcGoFishHomePage = 'https://github.com/mattslay/GoFish' - -*==== Provision for building as a Beta version ============================ -llBuildAsBeta = .f. - -If llBuildAsBeta = .t. - lcApplicationName = lcApplicationName + '_Beta' - lcBetaFolder = 'http://foxpro.mattslay.com/GoFish4/Beta/' - lcVersionFileURL = lcBetaFolder + '_GoFishVersionFile.txt' - lcDownloadUrl = lcBetaFolder + lcApplicationName + '.zip' -EndIf - -* This will appear as: '5.X.YYY' on the form, and in the cVersion property on the GoFishSeaerch Engine class - - -lcWindowTitle = 'Building ' + lcApplicationName -*!* ******************** Removed 11/01/2015 ***************** -*!* Define Window talkWindow From 1, 1 To 75, 100 In Screen Float Close Grow Zoom Title lcWindowTitle -*!* Activate Window talkWindow -*!* ******************** Removed 11/01/2015 ***************** -*!* Set Talk On Window talkWindow -? 'Building ' + lcApplicationName + ' Ver ' + lcVersion + ' Build ' + lcBuild -?? " (" + lcVersion + '.' + lcBuild + ")..." -? ' ' - -*------------------------------------------------------------------------------------ -*================================================================================================= - -lcVersion = lcVersion + '.' + lcBuild - -*-- Create a file in the source file which contains the Version number -lcDate = Transform(Date(), '@YL') -lcMonthDay = Alltrim(GetWordNum(lcDate, 2, ',')) -lcYear = Alltrim(GetWordNum(lcDate, 3, ',')) -lcBuildDate = lcMonthDay + ', ' + lcYear - -*lcVersionStringForVersionFile = lcApplicationName + ' ' + lcVersion + ' ' + lcBuildDate - -lcVersionStringForVersionFile = lcApplicationName + ' - ' + lcVersion + ' - ' + lcBuildDate + ' - ' + Dtoc (Date(), 1) - -Text to lcIncludeFileText NoShow TextMerge - - #DEFINE GOFISH_APP_NAME '<>' - #DEFINE GOFISH_APP_FILE '<>' - #DEFINE GOFISH_VERSION '<>' - #DEFINE GOFISH_BUILDDATE '<>' - #DEFINE GOFISH_DBUILDDATE Date(<>,<>, <>) - #DEFINE GOFISH_DOWNLOAD_URL '<>' - #DEFINE GOFISH_VERSION_STRING_FOR_VERSION_FILE '<>' - #DEFINE THOR_TOOL_NAME '<<"Thor_Tool_" + lcApplicationName>>' - #DEFINE VERSON_FILE_URL '<>' - #DEFINE VERSION_LOCAL_FILE '<>' - #DEFINE GOFISH_HOME_PAGE '<>' - -EndText - -*=== Create the local version File ====================================================== -lcVersionFileContents = lcApplicationName + Chr(13) + Chr(10) + ; - lcVersionStringForVersionFile + Chr(13) + Chr(10) + ; - lcDownloadUrl - -*Delete File (lcVersionLocalFile) -? "Writing local version file: " + lcVersionLocalFile -StrToFile(lcVersionFileContents, lcVersionLocalFile) - - -*=== Create the Cloud version file =========================================== -Text to lcCloudVersionFileContents NoShow TextMerge PRETEXT 3 - - Lparameters toUpdateInfo - - ###Text to lcNote NoShow - <> - ###EndText - - AddProperty(toUpdateInfo, 'AvailableVersion', '<>') - AddProperty(toUpdateInfo, 'SourceFileUrl', '<>') - AddProperty(toUpdateInfo, 'LinkPrompt', 'GoFish Home Page') - AddProperty(toUpdateInfo, 'Link', '<>') - AddProperty(toUpdateInfo, 'Notes', lcNote) - - Execscript (_Screen.cThorDispatcher, 'Result=', toUpdateInfo) - Return toUpdateInfo - -EndText - -lcCode = Strtran(lcCloudVersionFileContents, '###', '') -lcCloudVersionFile = '_' + lcVersionLocalFile -? "Writing cloud version file: " + lcCloudVersionFile -StrToFile(lcCode, lcCloudVersionFile) - - -*-- Write out the Include file with the current version and build date as contants -lcBuildGoFishHeaderFile = 'BuildGoFish.h' -Delete File (lcBuildGoFishHeaderFile) -? "Writing include file: " + lcBuildGoFishHeaderFile -StrToFile(lcIncludeFileText, lcBuildGoFishHeaderFile) - -lcBootStrap = 'GoFish.prg' -Compile (lcBootStrap) - -lcProject = lcSourceLoc + 'GoFish5.Pjx' - -If File(lcProject) - Build App (lcApplicationName) From (lcProject) - ? - lcAppFile = lcApplicationName + '.app' - Dir (lcAppFile) - ? Fdate(lcAppFile, 1) - - lcErrorFile = lcApplicationName + '.err' - If File(lcErrorFile) - ? - ? ' *** ERRORS ****' - ? FileToStr(lcErrorFile) - EndIf - -Else - MessageBox('Error locating Project file [' + lcProject + ']',16, lcApplicationName + ' - Building App') -Endif - -Set Safety &lcSafety - -? "" -? "Generation source code text files with FoxBin2Prg." -? " Working..." -Do GoFishGenerateSCC.prg -? "Done." - \ No newline at end of file +If Version(4) != "09.00.0000.7423" Then + Messagebox("Run with VFP9 SP2!") + Return .F. +Endif &&Version(4)!= "09.00.0000.7423" + +CLEAR ALL + +Local lcApplicationName, lcBetaFolder, lcBootStrap, lcBuild, lcBuildDate, lcBuildGoFishHeaderFile +Local lcCloudVersionFileContents, lcDate, lcDownloadUrl, lcErrorFile, lcGoFishHomePage, lcHgData +Local lcIncludeFileText, lcMercurialVersionFile, lcMonthDay, lcProject, lcSourceLoc, lcVersion +Local lcVersionFileContents, lcVersionFileURL, lcVersionLocalFile, lcVersionStringForVersionFile +Local lcAppFile, lcWindowTitle, lcYear, llBuildAsBeta, lnCurrentVersion, lcSafety, lcCloudVersionFile + +lcSafety = Set('Safety') +Set Safety Off + +lcSourceLoc = Addbs(Justpath(Sys(16))) && Change this to location of source files +Cd (lcSourceLoc) + +*== Most of these local variables will make their way into BuildGoFish.h +lcVersion = Alltrim(FileToStr('VersionNumber.txt'), ' ', CHR[9], CHR[13], chr[10]) +lcBuild = Alltrim(FileToStr('BuildNumber.txt'), ' ', CHR[9], CHR[13], chr[10]) +&& This will be used on the GoFish form and will live on the +&& the _GoFish object that gets attached to _Screen at run time. + +lcApplicationName = 'GoFish' +lcVersionLocalFile = 'GoFishVersionFile.txt' +lcVersionFileURL = 'https://github.com/VFPX/GoFish/_GoFishVersionFile.txt' +lcDownloadUrl = 'https://raw.githubusercontent.com/VFPX/GoFish/master/Source/Source.zip' +lcGoFishHomePage = 'https://github.com/VFPX/GoFish' + +* This will appear as: '5.X.YYY' on the form, and in the cVersion property on the GoFishSeaerch Engine class + + +lcWindowTitle = 'Building ' + lcApplicationName +? 'Building ' + lcApplicationName + ' Ver ' + lcVersion + ' Build ' + lcBuild +?? " (" + lcVersion + '.' + lcBuild + ")..." +? ' ' + +*------------------------------------------------------------------------------------ +*================================================================================================= + +lcVersion = lcVersion + '.' + lcBuild + +*-- Create a file in the source file which contains the Version number +lcDate = Transform(Date(), '@YL') +lcMonthDay = Alltrim(Getwordnum(lcDate, 2, ',')) +lcYear = Alltrim(Getwordnum(lcDate, 3, ',')) +lcBuildDate = lcMonthDay + ', ' + lcYear + +lcVersionStringForVersionFile = lcApplicationName + ' - ' + lcVersion + ' - ' + lcBuildDate + ' - ' + Dtoc (Date(), 1) + +TEXT to lcIncludeFileText NoShow TextMerge + + #DEFINE GOFISH_APP_NAME '<>' + #DEFINE GOFISH_APP_FILE '<>' + #DEFINE GOFISH_VERSION '<>' + #DEFINE GOFISH_BUILDDATE '<>' + #DEFINE GOFISH_DBUILDDATE Date(<>,<>, <>) + #DEFINE GOFISH_DOWNLOAD_URL '<>' + #DEFINE GOFISH_VERSION_STRING_FOR_VERSION_FILE '<>' + #DEFINE THOR_TOOL_NAME '<<"Thor_Tool_" + lcApplicationName>>' + #DEFINE VERSON_FILE_URL '<>' + #DEFINE VERSION_LOCAL_FILE '<>' + #DEFINE GOFISH_HOME_PAGE '<>' + +ENDTEXT + +*=== Create the local version File ====================================================== +lcVersionFileContents = lcApplicationName + Chr(13) + Chr(10) + ; + lcVersionStringForVersionFile + Chr(13) + Chr(10) + ; + lcDownloadUrl + +*=== Create the Cloud version file =========================================== +TEXT to lcCloudVersionFileContents NoShow TextMerge PRETEXT 3 + + Lparameters toUpdateInfo + + ###Text to lcNote NoShow + <> + ###EndText + + * For GF, strip off links at top of change log + lcNote = Substr(lcNote, At('--', lcNote)) + lcNote = Alltrim(lcNote, 1, ' ', '-', Chr(13), Chr(10)) + + AddProperty(toUpdateInfo, 'AvailableVersion', '<>') + AddProperty(toUpdateInfo, 'SourceFileUrl', '<>') + AddProperty(toUpdateInfo, 'LinkPrompt', 'GoFish Home Page') + AddProperty(toUpdateInfo, 'Link', '<>') + AddProperty(toUpdateInfo, 'Notes', lcNote) + + Execscript (_Screen.cThorDispatcher, 'Result=', toUpdateInfo) + Return toUpdateInfo + +ENDTEXT + +lcCode = Strtran(lcCloudVersionFileContents, '###', '') +lcCloudVersionFile = '..\_' + lcVersionLocalFile +? "Writing cloud version file: " + lcCloudVersionFile +Strtofile(lcCode, lcCloudVersionFile) + + +*-- Write out the Include file with the current version and build date as contants +lcBuildGoFishHeaderFile = 'BuildGoFish.h' +Delete File (lcBuildGoFishHeaderFile) +? "Writing include file: " + lcBuildGoFishHeaderFile +Strtofile(lcIncludeFileText, lcBuildGoFishHeaderFile) + +lcBootStrap = 'GoFish.prg' +Compile (lcBootStrap) + +lcProject = lcSourceLoc + 'GoFish.Pjx' + +If File(lcProject) + Build App (lcApplicationName) From (lcProject) + ? + lcAppFile = lcApplicationName + '.app' + Dir (lcAppFile) + ? Fdate(lcAppFile, 1) + + lcErrorFile = lcApplicationName + '.err' + If File(lcErrorFile) + ? + ? ' *** ERRORS ****' + ? Filetostr(lcErrorFile) + Endif + +Else + Messagebox('Error locating Project file [' + lcProject + ']',16, lcApplicationName + ' - Building App') +Endif + +Set Safety &lcSafety + +? "" +? "Generation source code text files with FoxBin2Prg." +? " Working..." +Do GoFishGenerateSCC.prg +? "Done." + diff --git a/Source/BuildGoFish.h b/Source/BuildGoFish.h index 13c483f..d5c07c4 100644 --- a/Source/BuildGoFish.h +++ b/Source/BuildGoFish.h @@ -1,11 +1,11 @@ - #DEFINE GOFISH_APP_NAME 'GoFish5' - #DEFINE GOFISH_APP_FILE 'GoFish5.app' - #DEFINE GOFISH_VERSION '5.0.170' - #DEFINE GOFISH_BUILDDATE 'March 24, 2021' - #DEFINE GOFISH_DBUILDDATE Date(2021,3, 24) - #DEFINE GOFISH_DOWNLOAD_URL 'http://bit.ly/GoFish5' - #DEFINE GOFISH_VERSION_STRING_FOR_VERSION_FILE 'GoFish5 - 5.0.170 - March 24, 2021 - 20210324' - #DEFINE THOR_TOOL_NAME 'Thor_Tool_GoFish5' - #DEFINE VERSON_FILE_URL 'http://foxpro.mattslay.com/GoFish5/_GoFishVersionFile.txt' - #DEFINE VERSION_LOCAL_FILE 'GoFishVersionFile.txt' - #DEFINE GOFISH_HOME_PAGE 'https://github.com/mattslay/GoFish' + #DEFINE GOFISH_APP_NAME 'GoFish' + #DEFINE GOFISH_APP_FILE 'GoFish.app' + #DEFINE GOFISH_VERSION '7.1.42' + #DEFINE GOFISH_BUILDDATE 'January 10, 2026' + #DEFINE GOFISH_DBUILDDATE Date(2026,1, 10) + #DEFINE GOFISH_DOWNLOAD_URL 'https://raw.githubusercontent.com/VFPX/GoFish/master/Source/Source.zip' + #DEFINE GOFISH_VERSION_STRING_FOR_VERSION_FILE 'GoFish - 7.1.42 - January 10, 2026 - 20260110' + #DEFINE THOR_TOOL_NAME 'Thor_Tool_GoFish' + #DEFINE VERSON_FILE_URL 'https://github.com/VFPX/GoFish/_GoFishVersionFile.txt' + #DEFINE VERSION_LOCAL_FILE 'GoFishVersionFile.txt' + #DEFINE GOFISH_HOME_PAGE 'https://github.com/VFPX/GoFish' diff --git a/Source/BuildNumber.txt b/Source/BuildNumber.txt new file mode 100644 index 0000000..f70d7bb --- /dev/null +++ b/Source/BuildNumber.txt @@ -0,0 +1 @@ +42 \ No newline at end of file diff --git a/Source/CSS/GoFish - Black.css b/Source/CSS/GoFish - Black.css index b67848c..59127f2 100644 --- a/Source/CSS/GoFish - Black.css +++ b/Source/CSS/GoFish - Black.css @@ -1,42 +1,42 @@ - - + + diff --git a/Source/CSS/GoFish - Color.css b/Source/CSS/GoFish - Color.css index 7945540..aab36dd 100644 --- a/Source/CSS/GoFish - Color.css +++ b/Source/CSS/GoFish - Color.css @@ -1,42 +1,42 @@ - - + + diff --git a/Source/CSS/GoFish - Original.css b/Source/CSS/GoFish - Original.css new file mode 100644 index 0000000..c059a36 --- /dev/null +++ b/Source/CSS/GoFish - Original.css @@ -0,0 +1,86 @@ + + + + diff --git a/Source/CSS/GoFish CSS Readme.txt b/Source/CSS/GoFish CSS Readme.txt index cf83dff..573c378 100644 --- a/Source/CSS/GoFish CSS Readme.txt +++ b/Source/CSS/GoFish CSS Readme.txt @@ -1,36 +1,36 @@ -The folder contains the CSS file that can be modified to control how -the VFP Code view is rendered in the GoFish form. - -The file used by GoFish to render the colors in the code is: GoFish.css - -This folder also contains 2 other css files that are simply templates to get -you started with modifying the css, if you desire to do so. - -You have these 2 templates: - -GoFish - Black.css -GoFish - Color.css - -Choose which one you want to use, and *COPY* it to a file named "GoFish.css" in this -same directory. You may then modify the new GoFish.css to color you code to your own preferences. - - -Again, neither of these 2 templates are actually used by GoFish. Only a file name GoFish.css is used -at run time. - -GoFish.css <-- This is the css file name that will be used by GoFish - - -Please keep the original template files intact so you can re-copy them if you mess up -the GoFish.css file. - -Enjoy!! - - -Also, do not remove or modify the GoFish.js file. It contains some JavaScript code that is -used to center the highlighted match line in the browser view. Not intended for user editing, -unleas you really know what you're doing. - - - - +The folder contains the CSS file that can be modified to control how +the VFP Code view is rendered in the GoFish form. + +The file used by GoFish to render the colors in the code is: GoFish.css + +This folder also contains 2 other css files that are simply templates to get +you started with modifying the css, if you desire to do so. + +You have these 2 templates: + +GoFish - Black.css +GoFish - Color.css + +Choose which one you want to use, and *COPY* it to a file named "GoFish.css" in this +same directory. You may then modify the new GoFish.css to color you code to your own preferences. + + +Again, neither of these 2 templates are actually used by GoFish. Only a file name GoFish.css is used +at run time. + +GoFish.css <-- This is the css file name that will be used by GoFish + + +Please keep the original template files intact so you can re-copy them if you mess up +the GoFish.css file. + +Enjoy!! + + +Also, do not remove or modify the GoFish.js file. It contains some JavaScript code that is +used to center the highlighted match line in the browser view. Not intended for user editing, +unleas you really know what you're doing. + + + + diff --git a/Source/CSS/GoFish.css b/Source/CSS/GoFish.css index 866e2da..e9493b7 100644 --- a/Source/CSS/GoFish.css +++ b/Source/CSS/GoFish.css @@ -1,86 +1,89 @@ - - - - + + + + diff --git a/Source/CSS/GoFish_User.css b/Source/CSS/GoFish_User.css new file mode 100644 index 0000000..f14d6f2 --- /dev/null +++ b/Source/CSS/GoFish_User.css @@ -0,0 +1,93 @@ + + + + diff --git a/Source/Changelog_Thor.txt b/Source/Changelog_Thor.txt new file mode 100644 index 0000000..f7dcb3a --- /dev/null +++ b/Source/Changelog_Thor.txt @@ -0,0 +1,64 @@ +## Ver 6.2.007 +**Released 2023-11-11** +### Changes +- Installing GoFish now provides an option to remove GoFish5. + +## Ver 6.2.006 +**Released 2023-10-24** +### Changes +- fixed issue with missing property declaration. + +## Ver 6.2.005 +**Released 2023-09-07** +### Changes +- Added file .FoxBin2Prg_Ignore in local storage directory, to stop FoxBin2Prg after version [1.20.07](https://github.com/lscheffler/foxbin2prg/releases/tag/1.20.07) from processing this directories. + +## Ver 6.2.004 +**Released 2023-09-04** +### Changes +- fixed problem with replace backup folder missing +- fixed an issue where whole history was populated in tree, while only that of the recent session was turned on +- fixed an issue with history tree turned on and search not returning result +- fixed: Scope combo could not be changed with keyboard, if CodeReferences option where turned on. +- added option to enter * or *.* in Advanced Search \-\> Filetypes \-\> Others to express **ALL** +- added option to enter multiple file skeletons to file templates +- better UI to set/unset file types +- optimized speed of folder search +- ignore git toplevel folder instead of .git +- ignore GoFish's settings folder, but allow to search the GF_Saved_Search_Results by explicitly selecting it (on your own risk) +- fixed Button to show menu tree should not appear for MPR files; fixed #102 +- MPR are now in the "Dangerous risk" replace group; closing #109 +- DynamicBackColor for Replacerisk 3 - Dangerous was wrong +- files not in filter visible in tree; fixed issue #118 +- wrong property used of SF_RegExp +- searching for file without extension is now allowed in "Advanced Search", "File template". #84 + - Note: "\*" is all files WITH extension, without extension is like "\*." +- fixed: Error "invalid path or file name" on startup; fixed #120 (PatrickvonDeetzen) +- forced to use of APP over PRG +- Renamed GoFish5 to GoFish + +## Ver 6.2.001 **Released 2023-05-09** +- Fixed: Code - window shows info for files without hit in filter #94 +- Fixed: If search is restored via "History", restore search settings; fixed #92 +- Fixed: Sort for full file path and date of search has higher order then the column clicked; fixed #91 +- Fixed: Filter Builder errors when filter string is equal sign #8 +- Improved: Messagebox text +- Improved: Different colours for filter in search result #88 + - Note: Filter expressions in the *Like* style are not highlighted (and never will be) +- Improved: CSS for "Code Window" in settings folder to alter colours +- Improved: DotNet-RegExp for some operations (not search) + +## Ver 6.2.000 **Released 2023-04-20** +- Fixed: Update failed when no search was started after first run +- Improved: First run sets now version to settings DBC +- Improved: Update messages give info for storage path + +## Ver 6.1.000 +**Released 2023-04-15** +### Changes +- Improved: Update of storage structure by version change +- Improved: Highlight searched text in opened window; merged #75 +- Improved: Max length of field FileName set to 100, issue #78 +- Fixed: Files with to long filename where sorted to wrong node, fixing #78 +- Fixed: Error while exporting, fixing #79 +- Fixed: Scope disappears after a project search, fixing #69 diff --git a/Source/Documentation/GoFishVersion - format for the Cloud.txt b/Source/Documentation/GoFishVersion - format for the Cloud.txt deleted file mode 100644 index 909ae03..0000000 --- a/Source/Documentation/GoFishVersion - format for the Cloud.txt +++ /dev/null @@ -1,3 +0,0 @@ -GoFish -4.1.205 -https://bitbucket.org/mattslay/gofish4/get/tip.zip \ No newline at end of file diff --git a/Source/Documentation/gofish 4 beta 2 update notes.txt b/Source/Documentation/gofish 4 beta 2 update notes.txt index 3b6543f..1a0d490 100644 --- a/Source/Documentation/gofish 4 beta 2 update notes.txt +++ b/Source/Documentation/gofish 4 beta 2 update notes.txt @@ -1,45 +1,45 @@ -GoFish 4.1 Alpha 2 - Build nnn Update Notes 2011-mm-dd ------------------------------------------------------------------------------------------- - 1. Added FFC classes to source codebase. See (lib\VFP\FFC). - - -GoFish 4.1 Alpha 1 - Build 191 Update Notes 2011-08-30 ------------------------------------------------------------------------------------------- - 1. Matches from DBF tables will be marked as Risk Level 3 matches. - (You can search the contents of DBF tables if you use a custom file mask template like *.dbf) - 2. Improved the details returned in match results from DBC's. - 3. Added a new Folder button to open an Explorer window and location of selected row. - 4. Can now open DBC matches with Modify Database by double clicking row. - 5. Fixed glitch when resolving property matches inside of PRG-based classes that have - weird code comments (i.e. Rick Strahl's Help Builder syntax caused problems.) - 6. Added new button on Options->Advanced page to clear out XML files to reset GoFish. - - - -GoFish 4.1 Alpa 1 Update Notes: ----------------------------------------------------------------------------------- -New features in 4.1 Alpha 1 - 1. Added a Progress Bar to the main form to show progress of search. - 2. The Search Expression can now contain preceding and trailing spaces. - 3. Added new feature to perform mass Replaces on code search matches. - 4. Added new feature to perform single line edits on code search matches. - 5. Added new fields to results cursor to support Replace feature. - 6. Enhanced search results are now gathered when searching FRX Report files. - - -Changes / Fixes from Ver 4 Beta 1: - - 1. Fixed FileDate info on text-based files. - 2. Fixed Ascending/Descending sorting when clicking on column headers. - 3. Now using BindEvent to bind grid headers to SortColumn() method. - 4. Fixed small bug in file template matching on Advanced page. - 5. The Results form and the Search form now use an EditBox for the Search text, rather than TextBoxes. - 6. The My.Settings.Load() method has a custom code line from the publicly released version to prevent - the Load() method from stripping of whitespaces. - 7. Added new MatchType to replace Reserved7 with - 8. Added new MatchType to replace Reserved8 with - 9. Fixed a bug to prevent crashing when attempting to search a text file that is locked by some other app. - 10. Fixed Regular Expression searching to automatically include 'beginning of line' and 'end of line' to the entered search expression. - - - +GoFish 4.1 Alpha 2 - Build nnn Update Notes 2011-mm-dd +------------------------------------------------------------------------------------------ + 1. Added FFC classes to source codebase. See (lib\VFP\FFC). + + +GoFish 4.1 Alpha 1 - Build 191 Update Notes 2011-08-30 +------------------------------------------------------------------------------------------ + 1. Matches from DBF tables will be marked as Risk Level 3 matches. + (You can search the contents of DBF tables if you use a custom file mask template like *.dbf) + 2. Improved the details returned in match results from DBC's. + 3. Added a new Folder button to open an Explorer window and location of selected row. + 4. Can now open DBC matches with Modify Database by double clicking row. + 5. Fixed glitch when resolving property matches inside of PRG-based classes that have + weird code comments (i.e. Rick Strahl's Help Builder syntax caused problems.) + 6. Added new button on Options->Advanced page to clear out XML files to reset GoFish. + + + +GoFish 4.1 Alpa 1 Update Notes: +---------------------------------------------------------------------------------- +New features in 4.1 Alpha 1 + 1. Added a Progress Bar to the main form to show progress of search. + 2. The Search Expression can now contain preceding and trailing spaces. + 3. Added new feature to perform mass Replaces on code search matches. + 4. Added new feature to perform single line edits on code search matches. + 5. Added new fields to results cursor to support Replace feature. + 6. Enhanced search results are now gathered when searching FRX Report files. + + +Changes / Fixes from Ver 4 Beta 1: + + 1. Fixed FileDate info on text-based files. + 2. Fixed Ascending/Descending sorting when clicking on column headers. + 3. Now using BindEvent to bind grid headers to SortColumn() method. + 4. Fixed small bug in file template matching on Advanced page. + 5. The Results form and the Search form now use an EditBox for the Search text, rather than TextBoxes. + 6. The My.Settings.Load() method has a custom code line from the publicly released version to prevent + the Load() method from stripping of whitespaces. + 7. Added new MatchType to replace Reserved7 with + 8. Added new MatchType to replace Reserved8 with + 9. Fixed a bug to prevent crashing when attempting to search a text file that is locked by some other app. + 10. Fixed Regular Expression searching to automatically include 'beginning of line' and 'end of line' to the entered search expression. + + + diff --git a/Source/Forms/gf_collection_explorer.SCT b/Source/Forms/gf_collection_explorer.SCT deleted file mode 100644 index 589de05..0000000 Binary files a/Source/Forms/gf_collection_explorer.SCT and /dev/null differ diff --git a/Source/Forms/gf_collection_explorer.sc2 b/Source/Forms/gf_collection_explorer.sc2 deleted file mode 100644 index c5c22c4..0000000 --- a/Source/Forms/gf_collection_explorer.sc2 +++ /dev/null @@ -1,551 +0,0 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gf_collection_explorer.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -#INCLUDE "..\lib\foxpro.h" - -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS frmcollectionexplorer AS form - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="oleTree" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="txtFullPath" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="olePropList" UniqueID="" Timestamp="" /> - - * - *m: getobjectreference && Returns the object reference to the item represented by a node. - *m: loadcollection && Loads a collection object into the treeview. - *m: loaditems && Loads the items in a collection into the treeview. - *m: loadmembers && Loads the member objects of an object into the tree view. - *m: loadobject && Loads an object into the TreeView. - *m: loadproperties && Loads the properties of an object into the treeview. - *m: newkey && Creates a new key for a node added to the tree. - *m: newnode && Adds an empty node to the treeview. - *m: showproperties && Displays the properties for the passed node. - *p: lshowarrays && Indicates that arrays should be displayed in the treeview. - *p: lshowitems && Indicates the items in a collection should be displayed in the tree. - *p: lshowmemberobjects && Indicates that member objects should be displayed in the treeview. - *p: lshowobjectreferences && Indicates that properties that hold object references should be added to the treeview. - *p: lshowproperties && Indicates that all properties should be displayed in the list view. - *p: ocollection && Contains an object reference to the top level collection in the treeview. - *p: ofirstobject && Stores an object reference to the top most object in the treeview. - *p: oflatcollection && Contains references to all of the items in all collections, without regard for hierarchy. - *a: apems[1,0] - * - - Caption = "Collection Explorer" - DoCreate = .T. - Height = 407 - Left = 1 - lshowarrays = .T. && Indicates that arrays should be displayed in the treeview. - lshowitems = .T. && Indicates the items in a collection should be displayed in the tree. - lshowmemberobjects = .T. && Indicates that member objects should be displayed in the treeview. - lshowobjectreferences = .T. && Indicates that properties that hold object references should be added to the treeview. - lshowproperties = .T. && Indicates that all properties should be displayed in the list view. - Name = "frmCollectionExplorer" - ocollection = NULL && Contains an object reference to the top level collection in the treeview. - ofirstobject = .NULL. && Stores an object reference to the top most object in the treeview. - oflatcollection = .NULL. && Contains references to all of the items in all collections, without regard for hierarchy. - Top = 0 - Width = 468 - WindowType = 1 - - ADD OBJECT 'olePropList' AS olecontrol WITH ; - Anchor = 45, ; - Height = 331, ; - Left = 168, ; - Name = "olePropList", ; - Top = 0, ; - Width = 290 - *< END OBJECT: BaseClass="olecontrol" OLEObject="c:\windows\syswow64\mscomctl.ocx" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7////+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBJJ//1Zc0BAwAAAAACAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABcAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAMUAAAAAAAAABAAAAAIAAAD+////BQAAAP7///8GAAAABwAAAP7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9L8NG9i4XREbFqAMDwKDYoIUM0EggAAAD5HQAANiIAAE4IfesBAAYAHAAAAAAAAAAAAAAAIxIAAPkdAAAB782rXAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MzY4MjY1RS04NUZFLTExZDEtOEJFMy0wMDAwRjg3NTREQTF5AHMAdABlAG0AMwAyAFwAaQBuAGUAdABzAHIAdgBcAGMAbgABAACADgAAAEhpZGVTZWxlY3Rpb24ABQAAAEwAAAAACgAAAExhYmVsRWRpdAAJAAAASQoAAAABAAAADQAAAE1vAAAFAEhKjgQDAAAACAAAgAUAAIA4uFkLAAAAAAAAAAAAAAAAH97svQEABQCwt1kLAAA3ADgAQgB9ACAAQwA6AHVzZVBvaW50ZXIACQAAAEkKAAAAAAAAAAUAAABWaWV3AAkAAABJCgAAAAMAAAALAAAAQXBwZWFyYW5jZQAJAAAASQoAAAAAAAAAEwAAAEFsbG93Q29sdW1uUmVvcmRlcgAFAAAATAEAAAAOAAAARmxhdFNjcm9sbEJhcgAFAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" /> - - ADD OBJECT 'oleTree' AS olecontrol WITH ; - Anchor = 135, ; - Height = 328, ; - Left = 4, ; - Name = "oleTree", ; - Top = 0, ; - Width = 157 - *< END OBJECT: BaseClass="olecontrol" OLEObject="c:\windows\syswow64\mscomctl.ocx" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiJ//1Zc0BAwAAAIACAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAagAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABcAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAFcBAAAAAAAABAAAAAIAAAD+////BQAAAP7///8GAAAABwAAAAgAAAAJAAAA/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+2kEHHiYXREbFqAMDwKDYoIUM0EggAAAA6EAAA5iEAALE8wWoBAAYAIgAAAHkATQDcAQAASgBvAAEAAAAB782rXAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MzY4MjY1RS04NUZFLTExZDEtOEJFMy0wMDAwRjg3NTREQTF5AHMAdABlAG0AMwAyAFwAaQBuAGUAdABzAHIAdgBcAGMAbgABAACADgAAAEhpZGVTZWxlY3Rpb24ABQAAAEwAAAAADAAAAEluZGVudGF0aW9uABEAAABODQAAAAcAAAAAAAAAAAAFAKiDXAsCAGUAAAAAAAUAAIBA6hgAAQAAAFwAH97svQEABQCI6hgARgBCADYANgA3ADgAQgB9ACAAQwA6AAAAMkAKAAAATGFiZWxFZGl0AAkAAABJCgAAAAEAAAAKAAAATGluZVN0eWxlAAkAAABJCgAAAAEAAAANAAAATW91c2VQb2ludGVyAAkAAABJCgAAAAAAAAAOAAAAUGF0aFNlcGFyYXRvcgAKAAAASAAAAAABAAAAXAYAAABTdHlsZQAJAAAASQoAAAAGAAAADAAAAE9MRURyYWdNb2RlAAkAAABJCgAAAAAAAAAMAAAAT0xFRHJvcE1vZGUACQAAAEkKAAAAAAAAAAsAAABBcHBlYXJhbmNlAAkAAABJCgAAAAAAAAAOAAAARnVsbFJvd1NlbGVjdAAFAAAATAEAAAAKAAAAU2luZ2xlU2VsAAUAAABMAAAAAH//f/9//38AAAAAAAAYIB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAkAkQEPAFdIQVRTVEhJU0hFTFBJRABwBRYAcAUWAC4AVgGVAQgAwCFYJ/whHgBIIh4AcCxYJwAAAAABAAAAAABzACg0WCcYNFgn+DNYJ7gjHgAYIB4AAAAAAG4AcwAAAGUAYwB0AG8AcgAuAHMAAAAAADYAAADQ2x0AlNwdAFAWXCdAFlwnAAAAAADAWEQAAABAaQBvAAAAcwBcAGMAbwBsAGwAZQAAAHQAaQBvAG4AaQBuAHMAwCFYJ4wiHgDYIh4AcCxYJwEAAAAeAAAAAAAAACg0WCcYNFgn+DNYJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ2x0AAAAAAFgYXCdIGFwnAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAADAIVgnDCMeAEgjHgBwLFgnAQAAAB8AAAAAAAAAQCJYJyAiWCcAAAAAAAAAAAAAAAAAAAAAAAAAAEgiHgAAAAAA" /> - - ADD OBJECT 'txtFullPath' AS textbox WITH ; - Anchor = 14, ; - DisabledForeColor = 0,0,0, ; - Enabled = .F., ; - Height = 72, ; - Left = 3, ; - Name = "txtFullPath", ; - NullDisplay = "", ; - Top = 333, ; - Width = 456 - *< END OBJECT: BaseClass="textbox" /> - - PROCEDURE Destroy - This.oFirstObject = NULL - This.oCollection = NULL - This.oFlatCollection.Remove(-1) - This.oFlatCollection = NULL - - ENDPROC - - PROCEDURE getobjectreference && Returns the object reference to the item represented by a node. - LPARAMETERS ; - toNode - - LOCAL ; - loReturn, ; - loItem, ; - lnIndex, ; - loTemp - - lnIndex = 0 - loReturn = NULL - TRY - loTemp = This.oFlatcollection.Item(toNode.Tag) - CATCH - loTemp = NULL - ENDTRY - - * We have to iterate the collection to find the object in order - * to get a Fox reference vs. a COM reference. - IF NOT ISNULL(loTemp) - FOR EACH loItem IN This.oFlatcollection FOXOBJECT - IF COMPOBJ(loTemp,loItem) - *!* IF loItem == loTemp - *!* lnIndex = lnIndex + 1 - *!* IF loItem.Tag == toNode.Tag - loReturn = loItem - EXIT - ENDIF - NEXT - ENDIF - *!* loReturn = Thisform.oFlatCollection.Item(toNode.Index) - RETURN loReturn - ENDPROC - - PROCEDURE Init - LPARAMETERS ; - toObject - - This.oFlatcollection = CREATEOBJECT([Collection]) - IF PCOUNT() = 1 - This.LoadObject(toObject) - ELSE - MESSAGEBOX([You must pass an object to start exploring from to this form.]) - ENDIF - - ENDPROC - - PROCEDURE loadcollection && Loads a collection object into the treeview. - LPARAMETERS ; - toCollection AS Collection , ; - tcMemberProperty, ; - toParent - - LOCAL ; - loItem AS Object, ; - lcMemberProperty, ; - loNode, ; - lnI, ; - lnItemNo, ; - loObject, ; - loMemberNode, ; - lnJ, ; - lvPropVal, ; - loE - - IF TYPE([toCollection]) <> [O] - RETURN - ENDIF - - - - LOCAL ARRAY laMembers[1] - *!* IF PCOUNT() < 3 - *!* This.oCollection = toCollection - *!* ENDIF - - lcMemberProperty = IIF(TYPE("tcMemberProperty") = [C], tcMemberProperty,[Name]) - lnItemNo = 0 - *!* FOR EACH loItem IN toCollection FOXOBJECT - FOR lnI = 1 TO toCollection.Count - loItem = toCollection.Item(lnI) - - lnItemNo = lnItemNo+1 - This.oFlatcollection.Add(loItem) - *!* loItem2 = This.oFlatcollection.Item(This.oFlatcollection.Count) - loNode = This.oleTree.Nodes.Add() - IF PCOUNT() = 3 - loNode.Parent = toParent - ENDIF - - - IF PEMSTATUS(loItem,lcMemberProperty,5) - loNode.Text = EVALUATE([loItem.]+lcMemberProperty) - ELSE - loNode.Text = [Item]+TRANSFORM(lnItemNo) - ENDIF - *!* FOR lnJ = 1 TO AMEMBERS(laMembers,loItem,2) - FOR lnJ = 1 TO AMEMBERS(laMembers,loItem,1) - - - DO CASE - CASE TYPE([loItem.]+laMembers[lnJ,1]) = [O] - loMemberNode = This.oleTree.Nodes.Add() - loMemberNode.Parent = loNode - loObject = EVALUATE([loItem.]+laMembers[lnJ,1]) - loMemberNode.Text = laMembers[lnJ,1] - *!* IF PEMSTATUS(loObject,lcMemberProperty,5) - *!* loMemberNode.Text = EVALUATE([loObject.]+lcMemberProperty) - *!* ELSE - *!* loMemberNode.Text = [Item]+TRANSFORM(lnItemNo) - *!* ENDIF - This.oFlatcollection.Add(loObject) - IF PEMSTATUS(loObject,[Item],5) - This.LoadCollection(loObject, lcMemberProperty, loMemberNode) - ENDIF - loMemberNode.Expanded = .F. - IF PEMSTATUS(loItem,[Item],5) - This.LoadCollection(loItem, lcMemberProperty, loNode) - ENDIF - CASE TYPE([loItem.]+laMembers[lnJ,1],1) = [A] - loMemberNode = This.oleTree.Nodes.Add() - loMemberNode.Parent = loNode - loMemberNode.Text = laMembers[lnJ,1] - This.oFlatcollection.Add(EVALUATE([loItem.]+laMembers[lnJ,1])) - - ENDCASE - NEXT - - - loNode.Expanded = .F. - - NEXT - IF ISNULL(This.oleTree.SelectedItem) AND This.oleTree.Nodes.Count>0 - This.oleTree.SelectedItem = This.oleTree.Nodes.Item(1) - This.oleTree.NodeClick(This.oleTree.Nodes.Item(1)) - ENDIF - - ENDPROC - - PROCEDURE loaditems && Loads the items in a collection into the treeview. - LPARAMETERS ; - toObject, ; - toParentNode - - LOCAL ; - loNode, ; - lnI, ; - lvItem - - IF This.lShowItems AND TYPE([toObject.Count]) = [N] - TRY - FOR lnI = 1 TO toObject.Count - lvItem = toObject.Item(lnI) - IF TYPE([lvItem]) = [O] - This.LoadObject(lvItem, toParentNode) - ELSE - loNode = This.NewNode() - loNode.Parent = toParentNode - loNode.Text = TRANSFORM(lvItem) - ENDIF - NEXT - CATCH TO foo - ENDTRY - ENDIF - - - ENDPROC - - PROCEDURE loadmembers && Loads the member objects of an object into the tree view. - LPARAMETERS ; - toObject, ; - toParentNode - - LOCAL ; - loObject, ; - lnI - - LOCAL ARRAY laMembers[1] - IF This.lShowMemberobjects AND TYPE([toObject])= [O] - FOR lnI = 1 TO AMEMBERS(laMembers,toObject,2) - loObject = EVALUATE([toObject.] + laMembers[lnI]) - This.LoadObject(loObject, toParentNode, laMembers[lnI]) - NEXT - ENDIF - - ENDPROC - - PROCEDURE loadobject && Loads an object into the TreeView. - LPARAMETERS ; - toObject, ; - toParentNode, ; - tcName - - LOCAL ; - lcName, ; - loNode, ; - loDummyNode, ; - lcKey - - WITH This - IF ISNULL(.oFirstObject) - .oFirstObject = toObject - .oleTree.Nodes.Clear() - ENDIF - - lcName = SYS(1272,toObject) - loNode = .oleTree.Nodes.Add() - lcKey = This.Newkey(.t.) - loNode.Tag = lcKey - - IF TYPE([toParentNode.Text]) = T_CHARACTER - loNode.Parent = toParentNode - ENDIF - - DO CASE - CASE NOT EMPTY(tcName) AND TYPE([tcName]) = T_CHARACTER - loNode.Text = tcName - CASE NOT EMPTY(lcName) AND lcName <> [unknown type] - loNode.Text = lcName - CASE PEMSTATUS(toObject,[Name],5) - loNode.Text = toObject.Name - CASE PEMSTATUS(toObject,[Class],5) - loNode.Text = toObject.Class - OTHERWISE - loNode.Text = [Object] - ENDCASE - - .oFlatCollection.Add(toObject,lcKey) - - *!* .LoadItems(toObject, loNode) - *!* .LoadMembers(toObject, loNode) - *!* .LoadProperties(toObject, loNode) - loDummyNode = This.oleTree.Nodes.Add() - loDummyNode.Text = [(Loading...)] - loDummyNode.Parent=loNode - - loNode.Expanded = .F. - ENDWITH - RETURN - - ENDPROC - - PROCEDURE loadproperties && Loads the properties of an object into the treeview. - LPARAMETERS ; - toObject, ; - toParentNode - - LOCAL ; - lvProperty, ; - lnI, ; - loObject, ; - lnJ, ; - loCollectionNode - - IF TYPE([toObject]) <> [O] - RETURN - ENDIF - - LOCAL ARRAY laMembers[1] - FOR lnI = 1 TO AMEMBERS(laMembers,toObject) - TRY - lvProperty = EVALUATE([toObject.] + laMembers[lnI]) - CATCH - lvProperty = NULL - ENDTRY - DO CASE - CASE TYPE([lvProperty]) = [O] AND NOT ISNULL(lvProperty) - This.LoadObject(lvProperty, toParentNode, laMembers[lnI]) - CASE TYPE([toObject.] + laMembers[lnI],1) = [A] - *!* WAIT WINDOW laMembers[lnI] - CASE TYPE([toObject.] + laMembers[lnI],1) = [C] - *!* This.LoadCollection(EVALUATE([toObject.] + laMembers[lnI]), toParentNode, laMembers[lnI]) - - loCollectionNode = Null - TRY - FOR lnJ = 1 TO EVALUATE([toObject.] + laMembers[lnI] + [.Count]) - *!* loObject = EVALUATE([toObject.] + laMembers[lnI] + [.Item(] + TRANSFORM(lnJ) + [)]) - loObject = EVALUATE([toObject.] + laMembers[lnI] + [(] + TRANSFORM(lnJ) + [)]) - IF ISNULL(loCollectionNode) - loCollectionNode = This.oleTree.Nodes.Add() - loCollectionNode.Parent = toParentNode - loCollectionNode.Text = laMembers[lnI] - ENDIF - This.LoadObject(loObject, loCollectionNode) - NEXT - CATCH TO Foo - *!* WAIT WINDOW MESSAGE() + CHR(13) + laMembers[lnI] - ENDTRY - loCollectionNode = NULL - ENDCASE - NEXT - - - ENDPROC - - PROCEDURE newkey && Creates a new key for a node added to the tree. - * Code from http://fox.wikis.com/wc.dll?Wiki~GUID~VFP - *== F9GUID - *== Create a new GUID character string, - *== optionally retaining the declared Windows functions - LPARAMETERS tlNoClear - LOCAL lcBuffer, ; - lcReturnValue, ; - llNoClear, ; - lnFuncVal - - *-- Define local variables - lcBuffer = REPLICATE( CHR( 0 ), 256 ) - lcReturnValue = [] - llNoClear = IIF( PCOUNT() > 0 AND VARTYPE( tlNoClear ) = "L", ; - tlNoClear, ; - .f. ; - ) - lnFuncVal = 0 - - *-- Declare DLL functions - DECLARE INTEGER CoCreateGuid ; - IN Ole32.DLL ; - STRING @pGuid - DECLARE INTEGER StringFromGUID2 ; - IN Ole32.DLL ; - STRING rguid, STRING @lpsz, INTEGER cchMax - - *-- Initialize a buffer to hold the GUID value - pGuid = REPLICATE( CHR( 0 ), 17 ) - - *-- Call the CoCreateGuid function - lnFuncVal = CoCreateGuid( @pGuid ) - - *-- If the DLL function returned zero, - *-- the function was successful, - *-- so build a string of the GUID data - IF lnFuncVal = 0 - = StringFromGUID2( pGuid, @lcBuffer, 128 ) - - *-- Truncate the GUID string to the desired length - lcBuffer = SUBSTR( lcBuffer, ; - 1, ; - AT( CHR( 0 ) + CHR( 0 ), lcBuffer ) ; - ) - - *-- Convert the string - lcReturnValue = STRCONV( lcBuffer, 6 ) - - ENDIF && lnFuncVal = 0 - - *-- Unless the calling module chose not to, - *-- clear the instantiated DLLs from memory - IF !llNoClear - CLEAR DLLS "StringFromGUID2" - CLEAR DLLS "CoCreateGuid" - - ENDIF && !tlNoClear - - *-- Clean up and return - RETURN ( lcReturnValue ) - - *== End module F9GUID - - ENDPROC - - PROCEDURE newnode && Adds an empty node to the treeview. - LOCAL ; - loNode - - loNode = This.oleTree.Nodes.Add() - RETURN loNode - - ENDPROC - - PROCEDURE showproperties && Displays the properties for the passed node. - LPARAMETERS ; - toNode - - LOCAL ; - loItem, ; - lcPropVal, ; - lnI, ; - loRow - - LOCAL ARRAY laPems[1] - This.olePropList.ListItems.Clear() - loItem = Thisform.GetObjectReference(toNode) - IF NOT ISNULL(loItem) - FOR lnI = 1 TO AMEMBERS(laPems,loItem) - loRow = This.olePropList.ListItems.Add() - loRow.Text = laPems[lnI] - TRY - lcPropVal = TRANSFORM(EVALUATE([loItem.]+laPems[lnI])) - CATCH - * This occurs when a property that would normally reference an object, - * such as parent, does not return an object reference. - lcPropVal = [(none)] - ENDTRY - loRow.SubItems(1)=lcPropVal - NEXT - ENDIF - Thisform.txtFullPath.Value = toNode.fullpath - - ENDPROC - - PROCEDURE olePropList.Init - loColumn = This.ColumnHeaders.Add() - loColumn.Width = This.Width/2 - loColumn.Text = [Property] - - loColumn = This.ColumnHeaders.Add() - loColumn.Width = This.Width/2 - loColumn.Text = [Value] - - ENDPROC - - PROCEDURE oleTree.Expand - *** ActiveX Control Event *** - LPARAMETERS toNode - LOCAL ; - loObject, ; - loNode, ; - lnI - - - loObject = Thisform.GetObjectReference(toNode) - FOR lnI = 1 TO toNode.Children - IF NOT EMPTY(toNode.Child.Tag) - Thisform.oFlatcollection.Remove(toNode.Child.Tag) - ENDIF - This.Nodes.Remove(toNode.Child.Index) - NEXT - loObject = Thisform.GetObjectReference(toNode) - - WITH Thisform - .LoadItems(loObject, toNode) - .LoadMembers(loObject, toNode) - .LoadProperties(loObject, toNode) - ENDWITH - ENDPROC - - PROCEDURE oleTree.NodeClick - *** ActiveX Control Event *** - LPARAMETERS node - Thisform.ShowProperties(Node) - - ENDPROC - -ENDDEFINE diff --git a/Source/Forms/gf_collection_explorer.scx b/Source/Forms/gf_collection_explorer.scx deleted file mode 100644 index 6abeee9..0000000 Binary files a/Source/Forms/gf_collection_explorer.scx and /dev/null differ diff --git a/Source/Forms/gf_migrate_6.dataenvironment.sc2 b/Source/Forms/gf_migrate_6.dataenvironment.sc2 new file mode 100644 index 0000000..5740c50 --- /dev/null +++ b/Source/Forms/gf_migrate_6.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gf_migrate_6.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gf_migrate_6.form1.sc2 b/Source/Forms/gf_migrate_6.form1.sc2 new file mode 100644 index 0000000..823a693 --- /dev/null +++ b/Source/Forms/gf_migrate_6.form1.sc2 @@ -0,0 +1,84 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gf_migrate_6.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS form1 AS form + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Edit1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Command1" UniqueID="" Timestamp="" /> + + * + AllowOutput = .F. + AutoCenter = .T. + Caption = "Migrating to Version 6" + Desktop = .T. + DoCreate = .T. + Height = 470 + Name = "Form1" + Width = 832 + * + + ADD OBJECT 'Command1' AS commandbutton WITH ; + Cancel = .T., ; + Caption = "Ok", ; + Default = .T., ; + Height = 27, ; + Left = 735, ; + Name = "Command1", ; + Top = 435, ; + Width = 84 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'Edit1' AS editbox WITH ; + BorderStyle = 0, ; + FontName = "Calibri", ; + FontSize = 12, ; + Height = 425, ; + Left = 5, ; + Name = "Edit1", ; + ReadOnly = .T., ; + ScrollBars = 0, ; + Top = 5, ; + Width = 808 + *< END OBJECT: BaseClass="editbox" /> + + PROCEDURE Init + TEXT TO lcx NOSHOW + Hi! + + There is an ongoing bug while migrating to version 6.*. + I'm unable to solve, I do not have the data to run into this bug. + + If there are "File Exists" Messageboxes, something with your old data is odd. + + To fix the bug: + - Cancel out + - Open folder HOME(7) + - Delete anything that looks like GoFish (GF*.* / GoFish files and folders) except "GoFish_Backup" folders. + + Since this bug is not solvable without the old data: + + Consider to zip the HOME(7)+"GoFish_Backup" folder and mail to VFPX@Scheffler-Software.de + Note: + This folder may contain a lot of your work and sensible stuff. I promise to wipe A.S.A.P, anyway transport is email. + If you favour a different way, notify me via mail above. + + If you run into this problem, please notify under https://github.com/VFPX/GoFish/issues/83 + + This message will show again if the HOME(7)+"GoFish_" folder is removed. (In case of fixing the bug.) + + ENDTEXT &&lcx + + this.Edit1.Value = m.lcx + ENDPROC + + PROCEDURE Command1.Click + CLEAR EVENTS + Thisform.Release() + ENDPROC + +ENDDEFINE diff --git a/Source/Forms/gf_migrate_6.sc2 b/Source/Forms/gf_migrate_6.sc2 new file mode 100644 index 0000000..4e4bc6c --- /dev/null +++ b/Source/Forms/gf_migrate_6.sc2 @@ -0,0 +1,11 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gf_migrate_6.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="form1" Baseclass="form" /> + +* \ No newline at end of file diff --git a/Source/Forms/gf_migrate_6.sct b/Source/Forms/gf_migrate_6.sct new file mode 100644 index 0000000..ac6660a Binary files /dev/null and b/Source/Forms/gf_migrate_6.sct differ diff --git a/Source/Lib/Not_Used/gofishsearchengine.vcx b/Source/Forms/gf_migrate_6.scx similarity index 59% rename from Source/Lib/Not_Used/gofishsearchengine.vcx rename to Source/Forms/gf_migrate_6.scx index a844884..4171080 100644 Binary files a/Source/Lib/Not_Used/gofishsearchengine.vcx and b/Source/Forms/gf_migrate_6.scx differ diff --git a/Source/Forms/gofish_about.SCT b/Source/Forms/gofish_about.SCT index 7a77d96..e4421cf 100644 Binary files a/Source/Forms/gofish_about.SCT and b/Source/Forms/gofish_about.SCT differ diff --git a/Source/Forms/gofish_about.dataenvironment.sc2 b/Source/Forms/gofish_about.dataenvironment.sc2 new file mode 100644 index 0000000..d150d35 --- /dev/null +++ b/Source/Forms/gofish_about.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_about.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gofish_about.gf_help.sc2 b/Source/Forms/gofish_about.gf_help.sc2 new file mode 100644 index 0000000..33557ad --- /dev/null +++ b/Source/Forms/gofish_about.gf_help.sc2 @@ -0,0 +1,282 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_about.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS gf_help AS gf_baseform OF "..\lib\gofishui.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="lblGoFishOnVFPx" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lblEmail" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lblWeb" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Image1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lblCredits" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lblCredits1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lblCredits2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Gf_versionlabel1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Image2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label5" UniqueID="" Timestamp="" /> + + * + BorderStyle = 0 + Caption = "GoFish - Help" + Closable = .T. + cuisettingsfile = GF_Help_Form_Settings.xml + DoCreate = .T. + Height = 270 + Left = -1 + MaxButton = .F. + MinButton = .F. + MinHeight = 270 + MinWidth = 450 + Name = "GF_Help" + Top = 0 + Visible = .T. + Width = 450 + WindowType = 1 + _memberdata = + + + + * + + ADD OBJECT 'Gf_versionlabel1' AS gf_versionlabel WITH ; + Height = 13, ; + Left = 216, ; + Name = "Gf_versionlabel1", ; + TabIndex = 6, ; + Top = 10, ; + Width = 225 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="label" /> + + ADD OBJECT 'Image1' AS image WITH ; + Height = 36, ; + Left = 17, ; + Name = "Image1", ; + Picture = ..\images\transpvfpxlogosmall.gif, ; + Stretch = 1, ; + Top = 37, ; + Width = 134 + *< END OBJECT: BaseClass="image" /> + + ADD OBJECT 'Image2' AS image WITH ; + Height = 77, ; + Left = 347, ; + Name = "Image2", ; + Picture = ..\images\gofish_logo_transparent.gif, ; + Top = 26, ; + Width = 95 + *< END OBJECT: BaseClass="image" /> + + ADD OBJECT 'Label1' AS label WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "GoFish issues on github", ; + FontBold = .F., ; + FontName = "Tahoma", ; + FontSize = 8, ; + FontUnderline = .T., ; + ForeColor = 0,0,255, ; + Height = 15, ; + Left = 21, ; + MousePointer = 15, ; + Name = "Label1", ; + TabIndex = 3, ; + Top = 91, ; + Width = 114 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Label3' AS label WITH ; + BackStyle = 0, ; + Caption = "See Init() method for string", ; + Height = 55, ; + Left = 21, ; + Name = "Label3", ; + TabIndex = 1, ; + Top = 216, ; + Width = 385, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Label4' AS label WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "GoFish Discussions on Google Groups", ; + FontBold = .F., ; + FontName = "Tahoma", ; + FontSize = 8, ; + FontUnderline = .T., ; + ForeColor = 0,0,255, ; + Height = 15, ; + Left = 21, ; + MousePointer = 15, ; + Name = "Label4", ; + TabIndex = 4, ; + Top = 134, ; + Width = 179 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Label5' AS label WITH ; + BackStyle = 0, ; + Caption = "Community / Discussions (deprecated, use github) :", ; + FontBold = .T., ; + Height = 19, ; + Left = 15, ; + Name = "Label5", ; + TabIndex = 12, ; + Top = 116, ; + Width = 304, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Label6' AS label WITH ; + Alignment = 1, ; + BackStyle = 0, ; + Caption = ('Build date will go here. See Init() method.'), ; + FontSize = 8, ; + Height = 19, ; + Left = 212, ; + Name = "Label6", ; + TabIndex = 11, ; + Top = 250, ; + Width = 229, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'lblCredits' AS label WITH ; + BackStyle = 0, ; + Caption = "Credits:", ; + FontBold = .T., ; + Height = 19, ; + Left = 15, ; + Name = "lblCredits", ; + TabIndex = 8, ; + Top = 154, ; + Width = 121, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'lblCredits1' AS label WITH ; + BackStyle = 0, ; + Caption = ('Matt Slay (GoFish 4 author), Peter Diotte (GoFish original author)'), ; + FontBold = .T., ; + Height = 19, ; + Left = 21, ; + Name = "lblCredits1", ; + TabIndex = 9, ; + Top = 173, ; + Width = 411, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'lblCredits2' AS label WITH ; + BackStyle = 0, ; + Caption = "See Init() method for string", ; + Height = 55, ; + Left = 21, ; + Name = "lblCredits2", ; + TabIndex = 10, ; + Top = 194, ; + Width = 385, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'lblEmail' AS label WITH ; + BackStyle = 0, ; + Caption = "Issues and Requests:", ; + FontBold = .T., ; + Height = 19, ; + Left = 15, ; + Name = "lblEmail", ; + TabIndex = 5, ; + Top = 76, ; + Width = 304, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'lblGoFishOnVFPx' AS label WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Visit the GoFish home page on VFPx", ; + FontBold = .F., ; + FontName = "Tahoma", ; + FontSize = 8, ; + FontUnderline = .T., ; + ForeColor = 0,0,255, ; + Height = 15, ; + Left = 34, ; + MousePointer = 15, ; + Name = "lblGoFishOnVFPx", ; + TabIndex = 2, ; + Top = 17, ; + Width = 173 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'lblWeb' AS label WITH ; + BackStyle = 0, ; + Caption = "Web:", ; + FontBold = .T., ; + Height = 19, ; + Left = 21, ; + Name = "lblWeb", ; + TabIndex = 7, ; + Top = 2, ; + Width = 121, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + PROCEDURE Init + Lparameters toForm + + DoDefault() + ENDPROC + + PROCEDURE Resize + Return .f. + ENDPROC + + PROCEDURE Image1.Click + this.Parent.lblGoFishOnVFPx.Click() + ENDPROC + + PROCEDURE Label1.Click + GF_Shell('https://github.com/VFPX/GoFish/issues') + + ENDPROC + + PROCEDURE Label3.Init + This.caption = 'Mike Potjer and Lutz Scheffler. Thanks to all the testers, too!!' + ENDPROC + + PROCEDURE Label4.Click + GF_Shell('http://groups.google.com/group/foxprogofish') + + ENDPROC + + PROCEDURE Label6.Init + This.caption = _screen._gofish.cbuilddate + ENDPROC + + PROCEDURE lblCredits1.Init + This.caption = 'Matt Slay (GoFish 4 author), Peter Diotte (GoFish original author)' + ENDPROC + + PROCEDURE lblCredits2.Init + This.caption = 'Michael Helland, Jim Nelson, Rick Schummer, Doug Hennig,' + ENDPROC + + PROCEDURE lblGoFishOnVFPx.Click + GF_Shell('https://github.com/VFPX/GoFish') + + ENDPROC + +ENDDEFINE diff --git a/Source/Forms/gofish_about.sc2 b/Source/Forms/gofish_about.sc2 index 69f623f..94f1201 100644 --- a/Source/Forms/gofish_about.sc2 +++ b/Source/Forms/gofish_about.sc2 @@ -1,282 +1,11 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_about.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS gf_help AS gf_baseform OF "..\lib\gofishui.vcx" - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="lblGoFishOnVFPx" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="lblEmail" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="lblWeb" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Image1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="lblCredits" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="lblCredits1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="lblCredits2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Gf_versionlabel1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Image2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label6" UniqueID="" Timestamp="" /> - - BorderStyle = 2 - Caption = "GoFish - Help" - Closable = .T. - DoCreate = .T. - Height = 288 - Left = 0 - MaxButton = .F. - MinButton = .F. - Name = "GF_Help" - Top = 1 - Visible = .T. - Width = 417 - WindowType = 1 - _memberdata = - - - - - ADD OBJECT 'Gf_versionlabel1' AS gf_versionlabel WITH ; - Height = 13, ; - Left = 184, ; - Name = "Gf_versionlabel1", ; - Top = 7, ; - Width = 225 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="label" /> - - ADD OBJECT 'Image1' AS image WITH ; - Height = 36, ; - Left = 12, ; - Name = "Image1", ; - Picture = ..\images\transpvfpxlogosmall.gif, ; - Stretch = 1, ; - Top = 91, ; - Width = 134 - *< END OBJECT: BaseClass="image" /> - - ADD OBJECT 'Image2' AS image WITH ; - Height = 77, ; - Left = 315, ; - Name = "Image2", ; - Picture = ..\images\gofish_logo_transparent.gif, ; - Top = 26, ; - Width = 95 - *< END OBJECT: BaseClass="image" /> - - ADD OBJECT 'Label1' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "GoFish Discussions on Google Groups", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - FontUnderline = .T., ; - ForeColor = 0,0,255, ; - Height = 15, ; - Left = 31, ; - MousePointer = 15, ; - Name = "Label1", ; - TabIndex = 11, ; - Top = 28, ; - Width = 179 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label3' AS label WITH ; - BackStyle = 0, ; - Caption = "See Init() method for string", ; - Height = 55, ; - Left = 21, ; - Name = "Label3", ; - Top = 248, ; - Width = 385, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label4' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Visit the GoFish Repository on BitBucket.org", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - FontUnderline = .T., ; - ForeColor = 0,0,255, ; - Height = 15, ; - Left = 31, ; - MousePointer = 15, ; - Name = "Label4", ; - TabIndex = 11, ; - Top = 156, ; - Width = 212 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label5' AS label WITH ; - AutoSize = .F., ; - BackStyle = 0, ; - Caption = "BitBucket (Repository, Wiki, Issue Tracker)", ; - FontBold = .T., ; - Height = 17, ; - Left = 20, ; - Name = "Label5", ; - Top = 138, ; - Width = 401, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label6' AS label WITH ; - Alignment = 1, ; - BackStyle = 0, ; - Caption = ('Build date will go here. See Init() method.'), ; - FontSize = 8, ; - Height = 19, ; - Left = 180, ; - Name = "Label6", ; - Top = 270, ; - Width = 229, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'lblCredits' AS label WITH ; - BackStyle = 0, ; - Caption = "Credits:", ; - FontBold = .T., ; - Height = 19, ; - Left = 15, ; - Name = "lblCredits", ; - Top = 186, ; - Width = 121, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'lblCredits1' AS label WITH ; - BackStyle = 0, ; - Caption = ('Matt Slay (GoFish 4 author), Peter Diotte (GoFish original author)'), ; - FontBold = .T., ; - Height = 19, ; - Left = 21, ; - Name = "lblCredits1", ; - Top = 205, ; - Width = 411, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'lblCredits2' AS label WITH ; - BackStyle = 0, ; - Caption = "See Init() method for string", ; - Height = 55, ; - Left = 21, ; - Name = "lblCredits2", ; - Top = 226, ; - Width = 385, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'lblEmail' AS label WITH ; - BackStyle = 0, ; - Caption = "Community / Discussions:", ; - FontBold = .T., ; - Height = 19, ; - Left = 20, ; - Name = "lblEmail", ; - Top = 8, ; - Width = 304, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'lblGoFishOnVFPx' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Visit the GoFish home page on VFPx", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - FontUnderline = .T., ; - ForeColor = 0,0,255, ; - Height = 15, ; - Left = 29, ; - MousePointer = 15, ; - Name = "lblGoFishOnVFPx", ; - TabIndex = 11, ; - Top = 73, ; - Width = 173 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'lblWeb' AS label WITH ; - BackStyle = 0, ; - Caption = "Web:", ; - FontBold = .T., ; - Height = 19, ; - Left = 18, ; - Name = "lblWeb", ; - Top = 56, ; - Width = 121, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - PROCEDURE Init - Lparameters toForm - - DoDefault() - ENDPROC - - PROCEDURE Resize - Return .f. - ENDPROC - - PROCEDURE Image1.Click - this.Parent.lblGoFishOnVFPx.Click() - ENDPROC - - PROCEDURE Label1.Click - Shell('http://groups.google.com/group/foxprogofish') - - ENDPROC - - PROCEDURE Label3.Init - This.caption = 'and Mike Potjer. Thanks to all the testers, too!!' - ENDPROC - - PROCEDURE Label4.Click - Shell('https://bitbucket.org/mattslay/gofish4/wiki/Home') - - ENDPROC - - PROCEDURE Label6.Init - This.caption = _screen._gofish.cbuilddate - ENDPROC - - PROCEDURE lblCredits1.Init - This.caption = 'Matt Slay (GoFish 4 author), Peter Diotte (GoFish original author)' - ENDPROC - - PROCEDURE lblCredits2.Init - This.caption = 'Michael Helland, Jim Nelson, Rick Schummer, Doug Hennig,' - ENDPROC - - PROCEDURE lblGoFishOnVFPx.Click - Shell('http://vfpx.codeplex.com/wikipage?title=GoFish') - - ENDPROC - -ENDDEFINE +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_about.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="gf_help" Baseclass="form" /> + +* \ No newline at end of file diff --git a/Source/Forms/gofish_about.scx b/Source/Forms/gofish_about.scx index 39e91b2..2a41b48 100644 Binary files a/Source/Forms/gofish_about.scx and b/Source/Forms/gofish_about.scx differ diff --git a/Source/Forms/gofish_advaccedreplacehelp.SCT b/Source/Forms/gofish_advaccedreplacehelp.SCT index 9b55c79..9353377 100644 Binary files a/Source/Forms/gofish_advaccedreplacehelp.SCT and b/Source/Forms/gofish_advaccedreplacehelp.SCT differ diff --git a/Source/Forms/gofish_advaccedreplacehelp.dataenvironment.sc2 b/Source/Forms/gofish_advaccedreplacehelp.dataenvironment.sc2 new file mode 100644 index 0000000..19ff497 --- /dev/null +++ b/Source/Forms/gofish_advaccedreplacehelp.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_advaccedreplacehelp.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gofish_advaccedreplacehelp.gf_baseform1.sc2 b/Source/Forms/gofish_advaccedreplacehelp.gf_baseform1.sc2 new file mode 100644 index 0000000..72b0f50 --- /dev/null +++ b/Source/Forms/gofish_advaccedreplacehelp.gf_baseform1.sc2 @@ -0,0 +1,137 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_advaccedreplacehelp.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS gf_baseform1 AS gf_baseform OF "..\lib\gofishui.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Edit1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Command1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Command2" UniqueID="" Timestamp="" /> + + * + BorderStyle = 2 + Caption = "GoFish - Advanced Replace" + cuisettingsfile = GF_Advanced_Repl_Form_Settings.xml + DoCreate = .T. + Height = 300 + Left = 0 + MaxButton = .F. + MinButton = .F. + Name = "GF_BaseForm1" + SizeBox = .F. + Top = 0 + Width = 600 + WindowType = 1 + ZoomBox = .F. + * + + ADD OBJECT 'Command1' AS commandbutton WITH ; + Caption = "Ok", ; + Default = .T., ; + Height = 26, ; + Left = 126, ; + Name = "Command1", ; + TabIndex = 1, ; + Top = 258, ; + Width = 95, ; + ZOrderSet = 3 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'Command2' AS commandbutton WITH ; + Caption = "Copy sample PRG to clipboard", ; + Height = 26, ; + Left = 315, ; + Name = "Command2", ; + TabIndex = 3, ; + Top = 258, ; + Width = 209, ; + ZOrderSet = 3 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'Edit1' AS editbox WITH ; + BorderStyle = 0, ; + DisabledForeColor = 0,0,0, ; + Enabled = .F., ; + Height = 224, ; + Left = 15, ; + Margin = 5, ; + Name = "Edit1", ; + ScrollBars = 0, ; + TabIndex = 4, ; + Top = 28, ; + Width = 579, ; + ZOrderSet = 0 + *< END OBJECT: BaseClass="editbox" /> + + ADD OBJECT 'Label1' AS label WITH ; + Caption = "Advanced Replace", ; + FontBold = .T., ; + FontSize = 10, ; + Height = 26, ; + Left = 18, ; + Name = "Label1", ; + TabIndex = 2, ; + Top = 7, ; + Width = 225, ; + ZOrderSet = 2 + *< END OBJECT: BaseClass="label" /> + + PROCEDURE Init + Lparameters toForm + + DoDefault() + + Thisform.Width = 600 + Thisform.Height = 300 + + GF_FixFontSize(Thisform, 9, m.toForm.nFormFontSize) + + This.Top = m.toForm.Top + (m.toForm.Height - This.Height) / 2 + This.Left = m.toForm.Left + (m.toForm.Width - This.Width) / 2 + + + + ENDPROC + + PROCEDURE Command1.Click + Thisform.Release + ENDPROC + + PROCEDURE Command2.Click + Local lcFile + + lcFile = 'gfadvancedreplace.prg' + If File(m.lcFile) + _Cliptext = Filetostr(m.lcFile) + Messagebox('Copied', 0, 'Copied', 3000) + Else + Messagebox('Error, file not found', 16, 'GF Error') + Endif + ENDPROC + + PROCEDURE Edit1.Init + Text to lcText noshow + With Advanced Replace, you select a UDF prg which processes the replacement text. + + For each checked row, the matched line will be passed into the selected UDF where it can be modified using any FoxPro code that you write in the prg. + + The return value from the UDF should be a character string containing the new line that you wish to replace the old line. Note that it may contain CR + LF to create new lines. + + *YOU* are in total control of what the replaced line contains. + + Special cases: + Return any non-character result to leave the matched line unchanged. + Return NULL to remove the line. + The result may include CR + LF to create new lines. + + EndText + + This.Value = lcText + ENDPROC + +ENDDEFINE diff --git a/Source/Forms/gofish_advaccedreplacehelp.sc2 b/Source/Forms/gofish_advaccedreplacehelp.sc2 index 6fd6189..d9b429a 100644 --- a/Source/Forms/gofish_advaccedreplacehelp.sc2 +++ b/Source/Forms/gofish_advaccedreplacehelp.sc2 @@ -1,148 +1,11 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_advaccedreplacehelp.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS gf_baseform1 AS gf_baseform OF "..\lib\gofishui.vcx" - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="Edit1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Command1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="lblGoFishOnVFPx" UniqueID="" Timestamp="" /> - - BorderStyle = 2 - Caption = "GoFish - Advanced Replace" - DoCreate = .T. - Height = 300 - Left = 0 - MaxButton = .F. - MinButton = .F. - Name = "Gf_baseform1" - SizeBox = .F. - Top = 0 - Width = 600 - WindowType = 1 - ZoomBox = .F. - - ADD OBJECT 'Command1' AS commandbutton WITH ; - Caption = "Ok", ; - Height = 26, ; - Left = 250, ; - Name = "Command1", ; - Top = 257, ; - Width = 95, ; - ZOrderSet = 3 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'Edit1' AS editbox WITH ; - BorderStyle = 0, ; - DisabledForeColor = 0,0,0, ; - Enabled = .F., ; - Height = 144, ; - Left = 15, ; - Margin = 5, ; - Name = "Edit1", ; - ScrollBars = 0, ; - Top = 40, ; - Width = 570, ; - ZOrderSet = 0 - *< END OBJECT: BaseClass="editbox" /> - - ADD OBJECT 'Label1' AS label WITH ; - Caption = "Advanced Replace", ; - FontBold = .T., ; - FontSize = 10, ; - Height = 30, ; - Left = 18, ; - Name = "Label1", ; - Top = 16, ; - Width = 225, ; - ZOrderSet = 2 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label2' AS label WITH ; - Caption = "For more help:", ; - FontBold = .T., ; - FontSize = 10, ; - Height = 30, ; - Left = 21, ; - Name = "Label2", ; - Top = 214, ; - Width = 122, ; - ZOrderSet = 1 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'lblGoFishOnVFPx' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Visit GoFish Replace Help on VFPx", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - FontUnderline = .T., ; - ForeColor = 0,0,255, ; - Height = 15, ; - Left = 129, ; - MousePointer = 15, ; - Name = "lblGoFishOnVFPx", ; - TabIndex = 11, ; - Top = 216, ; - Width = 163, ; - ZOrderSet = 4 - *< END OBJECT: BaseClass="label" /> - - PROCEDURE Init - Lparameters toForm - - DoDefault() - - Thisform.Width = 600 - Thisform.Height = 300 - - - ENDPROC - - PROCEDURE Command1.Click - Thisform.Release - ENDPROC - - PROCEDURE Edit1.Init - Text to lcText Pretext 3 noshow - - With Advanced Replace, you select a UDF prg which processes the replacement text. - - For each checked row, the matched line will be passed into the selected UDF where it can be modified using any FoxPro code that you write in the prg. - - The return value from the UDF should be a string containing the new line that you wish to replace the old line. - - *YOU* are in total control of what the replaced line contains. - - EndText - - This.Value = lcText - ENDPROC - - PROCEDURE lblGoFishOnVFPx.Click - Shell('http://vfpx.codeplex.com/wikipage?title=GoFish%20Replace%20Help') - - ENDPROC - -ENDDEFINE +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_advaccedreplacehelp.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="gf_baseform1" Baseclass="form" /> + +* \ No newline at end of file diff --git a/Source/Forms/gofish_advaccedreplacehelp.scx b/Source/Forms/gofish_advaccedreplacehelp.scx index 87496f9..3c2bdc7 100644 Binary files a/Source/Forms/gofish_advaccedreplacehelp.scx and b/Source/Forms/gofish_advaccedreplacehelp.scx differ diff --git a/Source/Forms/gofish_advanced.SCT b/Source/Forms/gofish_advanced.SCT index 3b64688..15cfe33 100644 Binary files a/Source/Forms/gofish_advanced.SCT and b/Source/Forms/gofish_advanced.SCT differ diff --git a/Source/Forms/gofish_advanced.dataenvironment.sc2 b/Source/Forms/gofish_advanced.dataenvironment.sc2 new file mode 100644 index 0000000..07f30cb --- /dev/null +++ b/Source/Forms/gofish_advanced.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_advanced.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="2" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gofish_advanced.gf_advanced.sc2 b/Source/Forms/gofish_advanced.gf_advanced.sc2 new file mode 100644 index 0000000..5fda4a5 --- /dev/null +++ b/Source/Forms/gofish_advanced.gf_advanced.sc2 @@ -0,0 +1,1460 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_advanced.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS gf_advanced AS gf_baseform OF "..\lib\gofishui.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Container2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.txtTimeStampTo" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.chkTimeStamp" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.Label11" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.Label12" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.txtTimeStampFrom" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.Label5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.Check3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.Check2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.Check4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container1.Check5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container3.cmdInclude" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container3.chklIncludeFiles" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container3.chklSKipFiles" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Container3.cmdExclude" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkXML" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkTXT" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkASP" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.ChkHTML" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkH" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkMNX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkSCX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkVCX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkDBC" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkLBX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkFRX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkPJX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkPRG" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkSPR" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkMPR" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.Line1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.Line2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkini" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.txtyourchoice" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.Label6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.Check2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkJava" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="containerFileTypes.chkJSP" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="editFileTemplate" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cmdCancel" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cmdHelp" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="CmdGoFish" UniqueID="" Timestamp="" /> + + * + *m: getcurrentscope + *m: loadoptions + *m: saveoptions + *m: setscope + *m: updatesearchscopevariables + *m: validateinputs + *p: cactiveproject + *p: ccurrentdir + *p: lreturn + *p: z_lincludesubdirectoriesbrowsed + *p: z_lincludesubdirectoriescurrent + * + + * + BindControls = .F. + cactiveproject = + Caption = "GoFish - Advanced Search Settings" + ccurrentdir = + cuisettingsfile = GF_Advanced_Form_Settings.xml + DataSession = 2 + DoCreate = .T. + HalfHeightCaption = .T. + Height = 433 + Left = 0 + lreturn = .F. + MaxButton = .F. + MinButton = .F. + MinHeight = 350 + MinWidth = 520 + Name = "GF_Advanced" + ShowTips = .T. + Top = 0 + Visible = .T. + Width = 520 + WindowType = 1 + z_lincludesubdirectoriesbrowsed = .F. + z_lincludesubdirectoriescurrent = .F. + _memberdata = + + + + + + + + + + + + + + + + + + * + + ADD OBJECT 'cmdCancel' AS commandbutton WITH ; + Anchor = 8, ; + Caption = "Save", ; + FontBold = .T., ; + Height = 34, ; + Left = 441, ; + Name = "cmdCancel", ; + TabIndex = 14, ; + ToolTipText = "Saves changes but does not search", ; + Top = 6, ; + Width = 66, ; + ZOrderSet = 13 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'CmdGoFish' AS commandbutton WITH ; + Anchor = 8, ; + Caption = "Go Fish", ; + Default = .T., ; + FontBold = .T., ; + FontName = "Tahoma", ; + Height = 34, ; + Left = 346, ; + Name = "CmdGoFish", ; + Picture = ..\images\fish13.ico, ; + PicturePosition = 1, ; + TabIndex = 13, ; + Top = 6, ; + Width = 84, ; + ZOrderSet = 12 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'cmdHelp' AS commandbutton WITH ; + Anchor = 8, ; + Caption = "", ; + FontName = "Tahoma", ; + Height = 22, ; + Left = 471, ; + Name = "cmdHelp", ; + Picture = ('images\refhelp.bmp'), ; + PicturePosition = 1, ; + SpecialEffect = 2, ; + TabIndex = 16, ; + Top = 61, ; + Width = 24, ; + ZOrderSet = 10 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'Container1' AS container WITH ; + Anchor = 10, ; + BorderWidth = 1, ; + Height = 157, ; + Left = 16, ; + Name = "Container1", ; + TabIndex = 5, ; + Top = 269, ; + Width = 493, ; + ZOrderSet = 1 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'Container1.Check2' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Ignore field RESERVED3 in SCXs / VCXs", ; + ControlSource = "thisform.oSearchOptions.lIgnorePropertiesField", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 81, ; + Name = "Check2", ; + TabIndex = 6, ; + ToolTipText = "Ignoring this field eliminates match types <>, <>, <>, and <>.", ; + Top = 82, ; + Value = .T., ; + Width = 233, ; + ZOrderSet = 10 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'Container1.Check3' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Ignore values in MemberData", ; + ControlSource = "thisform.oSearchOptions.lIgnoreMemberData", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 81, ; + Name = "Check3", ; + TabIndex = 6, ; + Top = 103, ; + Value = .T., ; + Width = 178, ; + ZOrderSet = 10 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'Container1.Check4' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Wildcard search across continuation lines", ; + ControlSource = "thisform.oSearchOptions.lWildCardContinuationLines", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 81, ; + Name = "Check4", ; + TabIndex = 6, ; + Top = 40, ; + Value = .T., ; + Width = 240, ; + ZOrderSet = 10 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'Container1.Check5' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Use Grep for faster directory searches", ; + ControlSource = "thisform.oSearchOptions.lOptimizeWithGrep", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 81, ; + Name = "Check5", ; + TabIndex = 6, ; + Top = 61, ; + Value = .T., ; + Width = 226, ; + ZOrderSet = 10 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'Container1.chkTimeStamp' AS checkbox WITH ; + Alignment = 0, ; + Anchor = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Date Filter", ; + ControlSource = "Thisform.oSearchOptions.lTimeStamp", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 81, ; + Name = "chkTimeStamp", ; + TabIndex = 10, ; + Top = 14, ; + Value = .T., ; + Width = 75, ; + ZOrderSet = 12 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'Container1.Label11' AS label WITH ; + Anchor = 0, ; + AutoSize = .T., ; + BackColor = 0,128,0, ; + BackStyle = 0, ; + Caption = "From", ; + FontBold = .F., ; + FontItalic = .F., ; + FontName = "Tahoma", ; + ForeColor = 0,0,0, ; + Height = 16, ; + Left = 166, ; + Name = "Label11", ; + TabIndex = 22, ; + Top = 15, ; + Width = 29, ; + ZOrderSet = 13 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Container1.Label12' AS label WITH ; + Anchor = 0, ; + AutoSize = .T., ; + BackColor = 0,128,0, ; + BackStyle = 0, ; + Caption = "To", ; + FontBold = .F., ; + FontItalic = .F., ; + FontName = "Tahoma", ; + ForeColor = 0,0,0, ; + Height = 16, ; + Left = 301, ; + Name = "Label12", ; + TabIndex = 21, ; + Top = 15, ; + Width = 17, ; + ZOrderSet = 14 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Container1.Label5' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Maximum number of results to find", ; + Height = 17, ; + Left = 96, ; + Name = "Label5", ; + TabIndex = 30, ; + ToolTipText = "Search will automatically stop once this number of mached lines it reached.", ; + Top = 127, ; + Width = 191 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Container1.Text1' AS textbox WITH ; + ControlSource = "Thisform.oSearchOptions.nMaxResults", ; + Height = 25, ; + InputMask = "9999999", ; + Left = 33, ; + Name = "Text1", ; + TabIndex = 29, ; + Top = 123, ; + Width = 59 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Container1.txtTimeStampFrom' AS textbox WITH ; + Alignment = 3, ; + Anchor = 0, ; + ControlSource = "thisform.oSearchOptions.dTimeStampFrom", ; + FontName = "Tahoma", ; + FontSize = 9, ; + Height = 23, ; + Left = 197, ; + Name = "txtTimeStampFrom", ; + SelectOnEntry = .T., ; + TabIndex = 11, ; + Top = 10, ; + Value = {}, ; + Width = 95, ; + ZOrderSet = 22 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Container1.txtTimeStampTo' AS textbox WITH ; + Alignment = 3, ; + Anchor = 0, ; + ControlSource = "thisform.oSearchOptions.dTimeStampTo", ; + FontName = "Tahoma", ; + FontSize = 9, ; + Height = 23, ; + Left = 322, ; + Name = "txtTimeStampTo", ; + SelectOnEntry = .T., ; + TabIndex = 12, ; + Top = 10, ; + Value = {}, ; + Width = 95, ; + ZOrderSet = 23 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Container2' AS container WITH ; + Anchor = 10, ; + BorderWidth = 1, ; + Height = 44, ; + Left = 16, ; + Name = "Container2", ; + TabIndex = 5, ; + Top = 46, ; + Width = 493, ; + ZOrderSet = 0 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'Container3' AS container WITH ; + Anchor = 10, ; + BorderWidth = 1, ; + Height = 44, ; + Left = 16, ; + Name = "Container3", ; + TabIndex = 5, ; + Top = 210, ; + Width = 493, ; + ZOrderSet = 0 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'Container3.chklIncludeFiles' AS checkbox WITH ; + Alignment = 0, ; + Anchor = 8, ; + Caption = "Include Files", ; + ControlSource = "Thisform.oSearchOptions.lIncludeFiles", ; + Height = 25, ; + Left = 44, ; + Name = "chklIncludeFiles", ; + Top = 11, ; + Width = 85, ; + ZOrderSet = 2 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'Container3.chklSKipFiles' AS checkbox WITH ; + Alignment = 0, ; + Anchor = 8, ; + Caption = "Exclude Files", ; + ControlSource = "Thisform.oSearchOptions.lSKipFiles", ; + Height = 25, ; + Left = 281, ; + Name = "chklSKipFiles", ; + Top = 11, ; + Width = 92, ; + ZOrderSet = 2 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'Container3.cmdExclude' AS commandbutton WITH ; + Anchor = 8, ; + Caption = "Edit list", ; + Height = 20, ; + Left = 379, ; + Name = "cmdExclude", ; + Top = 13, ; + Width = 79, ; + ZOrderSet = 7 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'Container3.cmdInclude' AS commandbutton WITH ; + Anchor = 8, ; + Caption = "Edit list", ; + Height = 20, ; + Left = 137, ; + Name = "cmdInclude", ; + Top = 13, ; + Width = 79, ; + ZOrderSet = 7 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'containerFileTypes' AS container WITH ; + Anchor = 10, ; + BorderWidth = 1, ; + Height = 90, ; + Left = 16, ; + Name = "containerFileTypes", ; + TabIndex = 5, ; + Top = 105, ; + Width = 493, ; + ZOrderSet = 4 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'containerFileTypes.Check1' AS checkbox WITH ; + Alignment = 0, ; + Caption = "", ; + ControlSource = "", ; + Height = 16, ; + Left = 164, ; + Name = "Check1", ; + TabIndex = 3, ; + Top = 7, ; + Value = .T., ; + Width = 14, ; + ZOrderSet = 27 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.Check2' AS checkbox WITH ; + Alignment = 0, ; + Caption = "", ; + ControlSource = "", ; + Height = 16, ; + Left = 388, ; + Name = "Check2", ; + TabIndex = 4, ; + Top = 7, ; + Value = .T., ; + Width = 14, ; + ZOrderSet = 29 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkASP' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "ASP", ; + ControlSource = "Thisform.oSearchOptions.lIncludeASP", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 332, ; + Name = "chkASP", ; + TabIndex = 20, ; + Top = 36, ; + Value = .T., ; + Width = 41, ; + ZOrderSet = 3 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkDBC' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "DBC", ; + ControlSource = "Thisform.oSearchOptions.lIncludeDBC", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 73, ; + Name = "chkDBC", ; + TabIndex = 12, ; + Top = 36, ; + Value = .T., ; + Width = 41, ; + ZOrderSet = 9 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkFRX' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "FRX", ; + ControlSource = "Thisform.oSearchOptions.lIncludeFRX", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 123, ; + Name = "chkFRX", ; + TabIndex = 13, ; + Top = 36, ; + Value = .T., ; + Width = 39, ; + ZOrderSet = 11 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkH' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = ".h", ; + ControlSource = "Thisform.oSearchOptions.lIncludeH", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 268, ; + Name = "chkH", ; + TabIndex = 16, ; + Top = 36, ; + Value = .T., ; + Width = 30, ; + ZOrderSet = 5 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.ChkHTML' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "HTM?", ; + ControlSource = "Thisform.oSearchOptions.lIncludeHTML", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 332, ; + Name = "ChkHTML", ; + TabIndex = 17, ; + Top = 22, ; + Value = .T., ; + Width = 50, ; + ZOrderSet = 4 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkini' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "INI", ; + ControlSource = "Thisform.oSearchOptions.lIncludeINI", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 268, ; + Name = "chkini", ; + TabIndex = 10, ; + Top = 22, ; + Value = .T., ; + Width = 35, ; + ZOrderSet = 19 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkJava' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "JAVA", ; + ControlSource = "Thisform.oSearchOptions.lIncludeJAVA", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 386, ; + Name = "chkJava", ; + TabIndex = 18, ; + Top = 22, ; + Value = .T., ; + Width = 48, ; + ZOrderSet = 24 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkJSP' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "JSP", ; + ControlSource = "Thisform.oSearchOptions.lIncludeJSP", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 386, ; + Name = "chkJSP", ; + TabIndex = 21, ; + Top = 36, ; + Value = .T., ; + Width = 38, ; + ZOrderSet = 23 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkLBX' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "LBX", ; + ControlSource = "Thisform.oSearchOptions.lIncludeLBX", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 123, ; + Name = "chkLBX", ; + TabIndex = 7, ; + Top = 22, ; + Value = .T., ; + Width = 39, ; + ZOrderSet = 10 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkMNX' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "MNX", ; + ControlSource = "Thisform.oSearchOptions.lIncludeMNX", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 73, ; + Name = "chkMNX", ; + TabIndex = 6, ; + Top = 22, ; + Value = .T., ; + Width = 43, ; + ZOrderSet = 6 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkMPR' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "MPR", ; + ControlSource = "Thisform.oSearchOptions.lIncludeMPR", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 221, ; + Name = "chkMPR", ; + TabIndex = 15, ; + Top = 36, ; + Value = .T., ; + Width = 42, ; + ZOrderSet = 15 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkPJX' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "PJX", ; + ControlSource = "Thisform.oSearchOptions.lIncludePJX", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 171, ; + Name = "chkPJX", ; + TabIndex = 8, ; + Top = 22, ; + Value = .T., ; + Width = 38, ; + ZOrderSet = 12 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkPRG' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "PRG", ; + ControlSource = "Thisform.oSearchOptions.lIncludePRG", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 171, ; + Name = "chkPRG", ; + TabIndex = 14, ; + Top = 36, ; + Value = .T., ; + Width = 41, ; + ZOrderSet = 13 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkSCX' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "SCX", ; + ControlSource = "Thisform.oSearchOptions.lIncludeSCX", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 26, ; + Name = "chkSCX", ; + TabIndex = 5, ; + Top = 22, ; + Value = .T., ; + Width = 40, ; + ZOrderSet = 7 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkSPR' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "SPR", ; + ControlSource = "Thisform.oSearchOptions.lIncludeSPR", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 221, ; + Name = "chkSPR", ; + TabIndex = 9, ; + Top = 22, ; + Value = .T., ; + Width = 40, ; + ZOrderSet = 14 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkTXT' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "TXT", ; + ControlSource = "Thisform.oSearchOptions.lIncludeTXT", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 442, ; + Name = "chkTXT", ; + TabIndex = 22, ; + Top = 36, ; + Value = .T., ; + Width = 42, ; + ZOrderSet = 2 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkVCX' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "VCX", ; + ControlSource = "Thisform.oSearchOptions.lIncludeVCX", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 26, ; + Name = "chkVCX", ; + TabIndex = 11, ; + Top = 36, ; + Value = .T., ; + Width = 41, ; + ZOrderSet = 8 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.chkXML' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "XML", ; + ControlSource = "Thisform.oSearchOptions.lIncludeXML", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 442, ; + Name = "chkXML", ; + TabIndex = 19, ; + Top = 22, ; + Value = .T., ; + Width = 41, ; + ZOrderSet = 25 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'containerFileTypes.Label6' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Additional:", ; + FontBold = .F., ; + FontItalic = .F., ; + Height = 17, ; + Left = 17, ; + Name = "Label6", ; + TabIndex = 39, ; + Top = 63, ; + Visible = .T., ; + Width = 57, ; + WordWrap = .T., ; + ZOrderSet = 21 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'containerFileTypes.Line1' AS line WITH ; + Height = 0, ; + Left = 26, ; + Name = "Line1", ; + Top = 14, ; + Width = 275, ; + ZOrderSet = 26 + *< END OBJECT: BaseClass="line" /> + + ADD OBJECT 'containerFileTypes.Line2' AS line WITH ; + Height = 0, ; + Left = 332, ; + Name = "Line2", ; + Top = 14, ; + Width = 149, ; + ZOrderSet = 28 + *< END OBJECT: BaseClass="line" /> + + ADD OBJECT 'containerFileTypes.txtyourchoice' AS textbox WITH ; + Anchor = 10, ; + ControlSource = "Thisform.oSearchOptions.cOtherIncludes", ; + Format = "!", ; + Height = 24, ; + Left = 74, ; + Name = "txtyourchoice", ; + TabIndex = 23, ; + ToolTipText = "Enter additional file extensions, separated spaces.", ; + Top = 59, ; + Width = 404, ; + ZOrderSet = 20 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'editFileTemplate' AS editbox WITH ; + Anchor = 10, ; + ControlSource = "Thisform.oSearchOptions.cFileTemplate", ; + Height = 23, ; + Left = 26, ; + Name = "editFileTemplate", ; + TabIndex = 4, ; + ToolTipText = "Enter one or more templates with wildcards, separated by commas. Example: cust*.* or *edit.prg or jobs.*. If you do N", ; + Top = 61, ; + Width = 430, ; + ZOrderSet = 9 + *< END OBJECT: BaseClass="editbox" /> + + ADD OBJECT 'Label1' AS label WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 1, ; + Caption = " File template(s) - separated by commas ", ; + FontBold = .F., ; + FontName = "Tahoma", ; + ForeColor = 0,0,0, ; + Height = 16, ; + Left = 24, ; + Name = "Label1", ; + TabIndex = 18, ; + Top = 39, ; + Width = 242, ; + ZOrderSet = 6 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Label2' AS label WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 1, ; + Caption = " Files to include / exclude ", ; + FontBold = .F., ; + FontName = "Tahoma", ; + ForeColor = 0,0,0, ; + Height = 16, ; + Left = 25, ; + Name = "Label2", ; + TabIndex = 18, ; + Top = 203, ; + Width = 161, ; + ZOrderSet = 6 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Label3' AS label WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontBold = .F., ; + FontName = "Tahoma", ; + ForeColor = 0,0,0, ; + Height = 16, ; + Left = 301, ; + Name = "Label3", ; + TabIndex = 17, ; + Top = 74, ; + Width = 2, ; + ZOrderSet = 5 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Label4' AS label WITH ; + Alignment = 2, ; + AutoSize = .T., ; + BackStyle = 1, ; + Caption = " Other Options ", ; + FontBold = .F., ; + FontName = "Tahoma", ; + ForeColor = 0,0,0, ; + Height = 16, ; + Left = 30, ; + Name = "Label4", ; + TabIndex = 15, ; + Top = 262, ; + Width = 104, ; + ZOrderSet = 8 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Label7' AS label WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 1, ; + Caption = " File Types ", ; + FontBold = .F., ; + FontName = "Tahoma", ; + ForeColor = 0,0,0, ; + Height = 16, ; + Left = 26, ; + Name = "Label7", ; + TabIndex = 16, ; + Top = 98, ; + Width = 80, ; + ZOrderSet = 11 + *< END OBJECT: BaseClass="label" /> + + PROCEDURE Activate + + If IsNull(This.oForm) && If Results form was closed down while this form was open + Thisform.Release() + Else + Thisform.UpdateSearchScopeVariables() + Thisform.Refresh() + Endif + + + ENDPROC + + PROCEDURE Destroy + DoDefault() + + If This.lReturn + Thisform.SaveOptions() + Thisform.oForm.comboSearchScopeHistory.SaveSearchScope(This.GetCurrentScope()) + Thisform.oForm.comboSearchScopeHistory.Value = This.GetCurrentScope() + Thisform.Top = -2000 && Move form out of view... + Thisform.oForm.Refresh() + Thisform.oForm.DoSearch() + Thisform.oForm.oGrid.SetFocus() + Endif + + Try + Thisform.oForm.lSearchFormVisible = .F. + Catch + Endtry + + Thisform.oForm = .Null. + Thisform.oSearchEngine = .Null. + Thisform.oSearchOptions = .Null. + Thisform.oMy = .Null. + + + ENDPROC + + PROCEDURE getcurrentscope + Local lcScope, lnScope + + lnScope = Thisform.oSearchOptions.nSearchScope + + Do Case + + Case lnScope = 1 + lcScope = Lower(Thisform.cActiveProject) + + Case lnScope = 2 + lcScope = Lower(Thisform.oSearchOptions.cProject) + + Case lnScope = 3 + lcScope = Lower(Thisform.cCurrentDir) + + Case lnScope = 4 + lcScope = Lower(Thisform.oSearchOptions.cPath) + + Otherwise + lcScope = Lower(Thisform.oSearchOptions.cRecentScope) + + Endcase + + lcScope = Rtrim(Alltrim(lcScope), 0, '\') + + Return lcScope + + ENDPROC + + PROCEDURE Init + Lparameters toGoFishForm + + Local lnHeight + + Try + Set Date (_Screen._GoFish.cSetDate) + Catch to loException + EndTry + + lnHeight = This.Height && Force form the designer height + DoDefault(toGoFishForm) + This.Height = lnHeight + + Thisform.oSearchEngine = Createobject('GoFishSearchEngine',,THIS.cCR_StoreLocal) + Thisform.oSearchEngine.oProjects = Thisform.oForm.oSearchEngine.oProjects + + ThisForm.LoadOptions() + + Thisform.BindControls = .t. + + Thisform.Refresh() + + + ENDPROC + + PROCEDURE KeyPress + LPARAMETERS nKeyCode, nShiftAltCtrl + + If nKeyCode = 27 + Thisform.Release() + Endif + + + ENDPROC + + PROCEDURE loadformsettings + This.MinHeight = This.Height + This.MinWidth = This.Width + + DoDefault() + ENDPROC + + PROCEDURE loadoptions + *-- Make a copy of the oSearchOption object from the Results form as our starting state. + Local lnPage + + Thisform.oSearchOptions = This.CopyObjectProperties(Thisform.oForm.oSearchEngine.oSearchOptions, CreateObject('Empty')) + + With Thisform + .cActiveProject = Thisform.oForm.cActiveProject + .cCurrentDir = Lower(Rtrim(Thisform.oForm.cCurrentDir, 0, '\')) + *.lIncludeSubDirectoriesBrowsed = Thisform.oForm.lIncludeSubDirectoriesBrowsed + *.lIncludeSubDirectoriesCurrent = Thisform.oForm.lIncludeSubDirectoriesCurrent + Endwith + + ENDPROC + + PROCEDURE saveoptions + If IsNull(this.oForm) + Return + Endif + + This.CopyObjectProperties(Thisform.oSearchOptions, Thisform.oForm.oSearchEngine.oSearchOptions) + + With Thisform.oForm + .cActiveProject = Lower(Thisform.cActiveProject) + .cCurrentDir = Lower(Rtrim(Thisform.cCurrentDir, 0, '\')) + *.lIncludeSubDirectoriesBrowsed = Thisform.lIncludeSubDirectoriesBrowsed + *.lIncludeSubDirectoriesCurrent = Thisform.lIncludeSubDirectoriesCurrent + Endwith + + + + + + ENDPROC + + PROCEDURE setscope + Lparameters tnPage + + Thisform.oSearchOptions.nSearchScope = Thisform.pageframeScope.ActivePage + + Thisform.Refresh() + + + ENDPROC + + PROCEDURE updatesearchscopevariables + With Thisform + .cActiveProject = Lower(Alltrim(Thisform.oSearchEngine.GetActiveProject())) + .cCurrentDir = Lower(Rtrim(Thisform.oSearchEngine.GetCurrentDirectory(), 0, '\')) + .oSearchEngine.AddProject(.cActiveProject) + Endwith + + + + + + ENDPROC + + PROCEDURE validateinputs + Local loGrid, loSearchEngine, loSearchOptions, loTimeStampToControl, lcPath + + loSearchOptions = Thisform.oSearchOptions + lcScope = Alltrim(Thisform.GetCurrentScope()) + lnReturn = 1 + + *-- Validate Directory (for Curr Dir or Browsed Dir) + If InList(loSearchOptions.nSearchScope, 3, 4) + lcPath = Addbs(lcScope) + If !Directory(lcPath, 1) + lcMessage = 'Invalid Directory [ ' + lcScope + ' ].' + lnReturn = loSearchOptions.nSearchScope * -1 + Endif + Endif + + *-- Validate Project file can be found (for Active Project and Browsed Project) + If InList(loSearchOptions.nSearchScope, 1, 2) + If !File(lcScope) + lcMessage = 'Cannot find project file [ ' + lcScope + ' ].' + lnReturn = loSearchOptions.nSearchScope * -1 + Endif + Endif + + *-- Make sure at least one date is supplied if timestamp box is checked. + If loSearchOptions.lTimeStamp and Empty(loSearchOptions.dTimeStampFrom) and Empty(loSearchOptions.dTimeStampTo) + lcMessage = 'At least one TimeStamp date must be entered, or else clear checkbox.' + lnReturn = -5 + EndIf + + *-- Must Specify a search expression, unless you are searching by TimeStamps + If Empty(loSearchOptions.cSearchExpression) and !loSearchOptions.lTimeStamp + lcMessage = 'Please specify a search string.' + lnReturn = -6 + Endif + + *-- Make sure at least on box if check if FileTypes container is enabled. + If Thisform.containerFileTypes.Enabled + llAtLeastOneBoxChecked = .f. + For each loControl in This.containerFileTypes.Controls + If Upper(loControl.baseclass) = 'CHECKBOX' + If loControl.Value and !InList(Upper(loControl.Name), 'CHECK1', 'CHECK2') + llAtLeastOneBoxChecked = .t. + Endif + Endif + Endfor + If !llAtLeastOneBoxChecked and Empty(Thisform.oSearchOptions.cOtherIncludes) + lcMessage = 'You must specify file extension(s) to search.' + lnReturn = -7 + Endif + Endif + + If lnReturn < 0 + MessageBox(lcMessage + ' Please fix.', 16, 'GoFish') + Endif + + Return lnReturn + + ENDPROC + + PROCEDURE cmdCancel.Click + Thisform.lReturn = .f. + + Thisform.SaveOptions() + + Thisform.Release() + ENDPROC + + PROCEDURE CmdGoFish.Click + Local lnValidate + + lnValidate = Thisform.ValidateInputs() + + If lnValidate < 0 + + Do Case + Case lnValidate = -4 + Thisform.pageframeScope.Page4.editPath.SetFocus() + + Case lnValidate = -5 + Thisform.Container1.txtTimeStampFrom.SetFocus() + + Otherwise + Thisform.editSearch.SetFocus() + Endcase + + Return .f. + EndIf + + Thisform.lReturn = .t. + + Thisform.Release() + + + + + + + ENDPROC + + PROCEDURE CmdGoFish.Refresh + Local llEnabled + + llEnabled = !Empty(Thisform.GetCurrentScope()) + + This.Enabled = llEnabled + + ENDPROC + + PROCEDURE cmdHelp.Click + + Text to lcText PreText 3 NoSHow + The File Template is a filename/extension filter that will run along with the selections in the Filetypes region. The format is: + + [*]filename[*] (dot) [*]ext[*] + + Meaning, the filename pattern comes first and can use the wildcard character (*) at the beginning or end. + + The extension pattern, if used, must be preceded by a dot (.), and can use the wildcard character at the beginning or the end. + + If an extension is included, it will override the extensions in the FileTypes region. + EndText + + + MessageBox(lcText, 0, 'File Template Help') + ENDPROC + + PROCEDURE Container1.Check2.Click + Thisform.oSearchEngine.ClearReplaceSettings() + ENDPROC + + PROCEDURE Container1.Check3.Click + Thisform.oSearchEngine.ClearReplaceSettings() + ENDPROC + + PROCEDURE Container1.Check4.Click + Thisform.oSearchEngine.ClearReplaceSettings() + ENDPROC + + PROCEDURE Container1.Check5.Click + Thisform.oSearchEngine.ClearReplaceSettings() + ENDPROC + + PROCEDURE Container1.chkTimeStamp.Click + DoDefault() + Thisform.Refresh() + + This.Parent.txtTimeStampFrom.SetFocus() + ENDPROC + + PROCEDURE Container1.Refresh + Local llEnabled, loControl + + llEnabled = Not '.' $ Thisform.oSearchOptions.cFileTemplate + + For Each m.loControl In This.Controls + Try + loControl.Enabled = m.llEnabled + Catch + Endtry + Endfor + + This.Enabled = m.llEnabled + ENDPROC + + PROCEDURE Container1.Text1.Click + This.SelStart = 0 + This.SelLength = 100 + ENDPROC + + PROCEDURE Container1.Text1.Valid + If this.Value <= 0 + MessageBox('Please enter a value greater than zero.', 64, 'GoFish') + Return .f. + Endif + + + ENDPROC + + PROCEDURE Container1.txtTimeStampFrom.Refresh + This.Enabled = Thisform.oSearchOptions.lTimeStamp + ENDPROC + + PROCEDURE Container1.txtTimeStampTo.Refresh + This.Enabled = Thisform.oSearchOptions.lTimeStamp + ENDPROC + + PROCEDURE Container2.Refresh + Local llEnabled, loControl + + llEnabled = Not '.' $ Thisform.oSearchOptions.cFileTemplate + + For Each m.loControl In This.Controls + Try + loControl.Enabled = m.llEnabled + Catch + Endtry + Endfor + + This.Enabled = m.llEnabled + ENDPROC + + PROCEDURE Container3.chklIncludeFiles.Valid + This.Parent.cmdInclude.Refresh() + + ENDPROC + + PROCEDURE Container3.chklSKipFiles.Valid + This.Parent.cmdExclude.Refresh() + + ENDPROC + + PROCEDURE Container3.cmdExclude.Click + GF_EditSkipList(Thisform.oSearchEngine) + + + ENDPROC + + PROCEDURE Container3.cmdExclude.MouseEnter + Lparameters nButton, nShift, nXCoord, nYCoord + + Local lcFileName + + lcFileName = Thisform.oSearchEngine.cFilesToSkipFile + + If File(m.lcFileName) + This.ToolTipText = Filetostr(m.lcFileName) + Endif + + + ENDPROC + + PROCEDURE Container3.cmdExclude.Refresh + This.visible = Thisform.oSearchOptions.lSKipFiles + ENDPROC + + PROCEDURE Container3.cmdInclude.Click + GF_EditIncludeList(Thisform.oSearchEngine) + + + ENDPROC + + PROCEDURE Container3.cmdInclude.MouseEnter + Lparameters nButton, nShift, nXCoord, nYCoord + + Local lcFileName + + lcFileName = Thisform.oSearchEngine.cFilesToIncludeFile + + If File(m.lcFileName) + This.ToolTipText = Filetostr(m.lcFileName) + Endif + + + ENDPROC + + PROCEDURE Container3.cmdInclude.Refresh + This.Visible = Thisform.oSearchOptions.lIncludeFiles + ENDPROC + + PROCEDURE Container3.Refresh + Local llEnabled, loControl + + llEnabled = Not '.' $ Thisform.oSearchOptions.cFileTemplate + + For Each m.loControl In This.Controls + Try + loControl.Enabled = m.llEnabled + Catch + Endtry + Endfor + + This.Enabled = m.llEnabled + ENDPROC + + PROCEDURE containerFileTypes.Check1.InteractiveChange + DODEFAULT() + + WITH this.parent + .chkscx.value = this.value + .chkvcx.value = this.value + .chkmnx.value = this.value + .chkdbc.value = this.value + .chklbx.value = this.value + .chkfrx.value = this.value + .chkpjx.value = this.value + .chkprg.value = this.value + .chkspr.value = this.value + .chkmpr.value = this.value + .chkini.value = this.value + .chkh.value = this.value + ENDWITH + ENDPROC + + PROCEDURE containerFileTypes.Check2.InteractiveChange + DODEFAULT() + + WITH This.parent + .chkhtml.value = this.value + .chkasp.value = this.value + .chkjava.value = this.value + .chkjsp.value = this.value + .chkxml.value = this.value + .chktxt.value = this.value + ENDWITH + ENDPROC + + PROCEDURE containerFileTypes.Refresh + Local llEnabled, loControl + + llEnabled = Not '.' $ Thisform.oSearchOptions.cFileTemplate + + For Each m.loControl In This.Controls + Try + loControl.Enabled = m.llEnabled + Catch + Endtry + Endfor + + This.Enabled = m.llEnabled + ENDPROC + + PROCEDURE editFileTemplate.Init + Text To This.ToolTipText Noshow Textmerge + Enter one or more templates with wildcards, separated by commas. + + Examples: cust*, *edit.prg, jobs.*, *invoice*.??x + + If you do not specify an extension, the normal filetypes (below) are used. + Endtext + + + ENDPROC + + PROCEDURE editFileTemplate.InteractiveChange + This.Value = This.value + Thisform.containerFileTypes.Refresh() + ENDPROC + +ENDDEFINE diff --git a/Source/Forms/gofish_advanced.sc2 b/Source/Forms/gofish_advanced.sc2 index 1fdd9c5..4e4a055 100644 --- a/Source/Forms/gofish_advanced.sc2 +++ b/Source/Forms/gofish_advanced.sc2 @@ -1,1907 +1,11 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_advanced.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="2" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS gf_advanced AS gf_baseform OF "..\lib\gofishui.vcx" - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="Shape4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label6" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Check1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="comboSearchExpressionHistory" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Shape2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Shape1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkXML" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkTXT" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkASP" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.ChkHTML" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkH" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkMNX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkSCX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkVCX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkDBC" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkLBX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkFRX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkPJX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkPRG" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkSPR" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkMPR" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.Line1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.Check1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.Line2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkini" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.txtyourchoice" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.Label6" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.Check2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkJava" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerFileTypes.chkJSP" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="chkcomment" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="chkMatchWholeWord" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="chkMatchCase" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Check2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="chkTimeStamp" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label11" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label12" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page1.Label10" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page1.txtPath" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page1.chkLimitToProjectFolder" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page2.CboProject" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page2.Label10" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page2.CmdDir" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page2.chkLimitToProjectFolder" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page3.chkSubdirectories" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page3.txtPath" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page3.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page4.chkSubdirectories" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page4.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page4.CmdDir" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page4.Command1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page4.editPath" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page5.comboSearchScropeHistory" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page5.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pageframeScope.Page5.imgScopeIcon" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="editFileTemplate" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label7" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="CmdGoFish" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cmdCancel" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="txtTimeStampFrom" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="txtTimeStampTo" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="editSearch" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="comboSearchExpressionHistoryDropDownArrow" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Command1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cmdHelp" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Check3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Optiongroup1" UniqueID="" Timestamp="" /> - - * - *m: getcurrentscope - *m: loadoptions - *m: saveoptions - *m: setscope - *m: updatesearchscopevariables - *m: validateinputs - *p: cactiveproject - *p: ccurrentdir - *p: lreturn - *p: z_lincludesubdirectoriesbrowsed - *p: z_lincludesubdirectoriescurrent - * - - BindControls = .F. - cactiveproject = - Caption = "GoFish - Advanced Search" - ccurrentdir = - DataSession = 2 - DoCreate = .T. - HalfHeightCaption = .T. - Height = 430 - Left = 0 - lreturn = .F. - MaxButton = .F. - MinButton = .F. - MinHeight = 350 - MinWidth = 520 - Name = "GF_Advanced" - ShowTips = .T. - Top = 0 - Visible = .T. - Width = 520 - WindowType = 1 - z_lincludesubdirectoriesbrowsed = .F. - z_lincludesubdirectoriescurrent = .F. - _memberdata = - - - - - - - - - - - - - - - - - - - ADD OBJECT 'Check1' AS checkbox WITH ; - Alignment = 0, ; - Anchor = 8, ; - Caption = "Skip Files", ; - ControlSource = "Thisform.oSearchOptions.lSKipFiles", ; - Height = 25, ; - Left = 421, ; - Name = "Check1", ; - Top = 151, ; - Width = 85, ; - ZOrderSet = 2 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'Check2' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Ignore field RESERVED3 in SCXs / VCXs", ; - ControlSource = "thisform.oSearchOptions.lIgnorePropertiesField", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 212, ; - Name = "Check2", ; - TabIndex = 6, ; - ToolTipText = "Ignoring this field eliminates match types <>, <>, <>, and <>.", ; - Top = 380, ; - Value = .T., ; - Width = 205, ; - ZOrderSet = 10 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'Check3' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Ignore values in MemberData", ; - ControlSource = "thisform.oSearchOptions.lIgnoreMemberData", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 212, ; - Name = "Check3", ; - TabIndex = 6, ; - Top = 401, ; - Value = .T., ; - Width = 159, ; - ZOrderSet = 10 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'chkcomment' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - Caption = "Search in comments", ; - ControlSource = "Thisform.oSearchOptions.lSearchInComments", ; - FontSize = 8, ; - Height = 16, ; - Left = 29, ; - Name = "chkcomment", ; - TabIndex = 9, ; - Top = 378, ; - Value = .F., ; - Width = 116, ; - ZOrderSet = 8 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'chkMatchCase' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Match \ - - ADD OBJECT 'chkMatchWholeWord' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Match \ - - ADD OBJECT 'chkTimeStamp' AS checkbox WITH ; - Alignment = 0, ; - Anchor = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "TimeStamp Filter", ; - ControlSource = "Thisform.oSearchOptions.lTimeStamp", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 212, ; - Name = "chkTimeStamp", ; - TabIndex = 10, ; - Top = 336, ; - Value = .T., ; - Width = 97, ; - ZOrderSet = 12 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'cmdCancel' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "Save", ; - FontBold = .T., ; - Height = 34, ; - Left = 441, ; - Name = "cmdCancel", ; - TabIndex = 14, ; - ToolTipText = "Saves changes but does not search", ; - Top = 6, ; - Width = 66, ; - ZOrderSet = 21 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'CmdGoFish' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "Go Fish", ; - Default = .T., ; - FontBold = .T., ; - FontName = "Tahoma", ; - Height = 34, ; - Left = 346, ; - Name = "CmdGoFish", ; - Picture = ..\images\fish13.ico, ; - PicturePosition = 1, ; - TabIndex = 13, ; - Top = 6, ; - Width = 84, ; - ZOrderSet = 20 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'cmdHelp' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "", ; - FontName = "Tahoma", ; - Height = 22, ; - Left = 343, ; - Name = "cmdHelp", ; - Picture = ('images\refhelp.bmp'), ; - PicturePosition = 1, ; - SpecialEffect = 2, ; - TabIndex = 16, ; - Top = 166, ; - Width = 24, ; - ZOrderSet = 29 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'comboSearchExpressionHistory' AS gf_combosearchexpressionhistory WITH ; - Height = 26, ; - Left = 47, ; - Name = "comboSearchExpressionHistory", ; - Top = 8, ; - Width = 284, ; - ZOrderSet = 3 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="combobox" /> - - ADD OBJECT 'comboSearchExpressionHistoryDropDownArrow' AS combobox WITH ; - Anchor = 8, ; - Height = 26, ; - Left = 310, ; - Name = "comboSearchExpressionHistoryDropDownArrow", ; - TabStop = .F., ; - Top = 12, ; - Width = 21, ; - ZOrderSet = 27 - *< END OBJECT: BaseClass="combobox" /> - - ADD OBJECT 'Command1' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "Edit list", ; - Height = 20, ; - Left = 418, ; - Name = "Command1", ; - Top = 176, ; - Width = 79, ; - ZOrderSet = 28 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerFileTypes' AS container WITH ; - Anchor = 10, ; - BorderWidth = 0, ; - Height = 84, ; - Left = 11, ; - Name = "containerFileTypes", ; - TabIndex = 5, ; - Top = 206, ; - Width = 493, ; - ZOrderSet = 6 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerFileTypes.Check1' AS checkbox WITH ; - Alignment = 0, ; - Caption = "", ; - ControlSource = "", ; - Height = 16, ; - Left = 152, ; - Name = "Check1", ; - TabIndex = 3, ; - Top = 7, ; - Value = .T., ; - Width = 14, ; - ZOrderSet = 27 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.Check2' AS checkbox WITH ; - Alignment = 0, ; - Caption = "", ; - ControlSource = "", ; - Height = 16, ; - Left = 388, ; - Name = "Check2", ; - TabIndex = 4, ; - Top = 7, ; - Value = .T., ; - Width = 14, ; - ZOrderSet = 29 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkASP' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "ASP", ; - ControlSource = "Thisform.oSearchOptions.lIncludeASP", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 332, ; - Name = "chkASP", ; - TabIndex = 20, ; - Top = 36, ; - Value = .T., ; - Width = 43, ; - ZOrderSet = 3 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkDBC' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "DBC", ; - ControlSource = "Thisform.oSearchOptions.lIncludeDBC", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 16, ; - Left = 80, ; - Name = "chkDBC", ; - TabIndex = 12, ; - Top = 36, ; - Value = .T., ; - Width = 40, ; - ZOrderSet = 9 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkFRX' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "FRX", ; - ControlSource = "Thisform.oSearchOptions.lIncludeFRX", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 16, ; - Left = 122, ; - Name = "chkFRX", ; - TabIndex = 13, ; - Top = 36, ; - Value = .T., ; - Width = 37, ; - ZOrderSet = 11 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkH' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = ".h", ; - ControlSource = "Thisform.oSearchOptions.lIncludeH", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 16, ; - Left = 243, ; - Name = "chkH", ; - TabIndex = 16, ; - Top = 36, ; - Value = .T., ; - Width = 37, ; - ZOrderSet = 5 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.ChkHTML' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "HTM?", ; - ControlSource = "Thisform.oSearchOptions.lIncludeHTML", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 332, ; - Name = "ChkHTML", ; - TabIndex = 17, ; - Top = 22, ; - Value = .T., ; - Width = 43, ; - ZOrderSet = 4 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkini' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "INI", ; - ControlSource = "Thisform.oSearchOptions.lIncludeINI", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 16, ; - Left = 243, ; - Name = "chkini", ; - TabIndex = 10, ; - Top = 22, ; - Value = .T., ; - Width = 44, ; - ZOrderSet = 19 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkJava' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "JAVA", ; - ControlSource = "Thisform.oSearchOptions.lIncludeJAVA", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 378, ; - Name = "chkJava", ; - TabIndex = 18, ; - Top = 22, ; - Value = .T., ; - Width = 43, ; - ZOrderSet = 24 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkJSP' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "JSP", ; - ControlSource = "Thisform.oSearchOptions.lIncludeJSP", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 378, ; - Name = "chkJSP", ; - TabIndex = 21, ; - Top = 36, ; - Value = .T., ; - Width = 43, ; - ZOrderSet = 23 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkLBX' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "LBX", ; - ControlSource = "Thisform.oSearchOptions.lIncludeLBX", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 16, ; - Left = 122, ; - Name = "chkLBX", ; - TabIndex = 7, ; - Top = 22, ; - Value = .T., ; - Width = 37, ; - ZOrderSet = 10 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkMNX' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "MNX", ; - ControlSource = "Thisform.oSearchOptions.lIncludeMNX", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 80, ; - Name = "chkMNX", ; - TabIndex = 6, ; - Top = 22, ; - Value = .T., ; - Width = 40, ; - ZOrderSet = 6 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkMPR' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "MPR", ; - ControlSource = "Thisform.oSearchOptions.lIncludeMPR", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 204, ; - Name = "chkMPR", ; - TabIndex = 15, ; - Top = 36, ; - Value = .T., ; - Width = 40, ; - ZOrderSet = 15 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkPJX' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "PJX", ; - ControlSource = "Thisform.oSearchOptions.lIncludePJX", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 162, ; - Name = "chkPJX", ; - TabIndex = 8, ; - Top = 22, ; - Value = .T., ; - Width = 39, ; - ZOrderSet = 12 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkPRG' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "PRG", ; - ControlSource = "Thisform.oSearchOptions.lIncludePRG", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 162, ; - Name = "chkPRG", ; - TabIndex = 14, ; - Top = 36, ; - Value = .T., ; - Width = 39, ; - ZOrderSet = 13 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkSCX' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "SCX", ; - ControlSource = "Thisform.oSearchOptions.lIncludeSCX", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 41, ; - Name = "chkSCX", ; - TabIndex = 5, ; - Top = 22, ; - Value = .T., ; - Width = 37, ; - ZOrderSet = 7 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkSPR' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "SPR", ; - ControlSource = "Thisform.oSearchOptions.lIncludeSPR", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 204, ; - Name = "chkSPR", ; - TabIndex = 9, ; - Top = 22, ; - Value = .T., ; - Width = 40, ; - ZOrderSet = 14 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkTXT' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "TXT", ; - ControlSource = "Thisform.oSearchOptions.lIncludeTXT", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 426, ; - Name = "chkTXT", ; - TabIndex = 22, ; - Top = 36, ; - Value = .T., ; - Width = 43, ; - ZOrderSet = 2 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkVCX' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "VCX", ; - ControlSource = "Thisform.oSearchOptions.lIncludeVCX", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 41, ; - Name = "chkVCX", ; - TabIndex = 11, ; - Top = 36, ; - Value = .T., ; - Width = 37, ; - ZOrderSet = 8 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.chkXML' AS checkbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "XML", ; - ControlSource = "Thisform.oSearchOptions.lIncludeXML", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 17, ; - Left = 426, ; - Name = "chkXML", ; - TabIndex = 19, ; - Top = 22, ; - Value = .T., ; - Width = 43, ; - ZOrderSet = 25 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerFileTypes.Label6' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Other:", ; - FontBold = .F., ; - FontItalic = .F., ; - FontSize = 8, ; - Height = 16, ; - Left = 41, ; - Name = "Label6", ; - TabIndex = 39, ; - Top = 63, ; - Visible = .T., ; - Width = 30, ; - WordWrap = .T., ; - ZOrderSet = 21 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'containerFileTypes.Line1' AS line WITH ; - Height = 0, ; - Left = 43, ; - Name = "Line1", ; - Top = 14, ; - Width = 237, ; - ZOrderSet = 26 - *< END OBJECT: BaseClass="line" /> - - ADD OBJECT 'containerFileTypes.Line2' AS line WITH ; - Height = 0, ; - Left = 334, ; - Name = "Line2", ; - Top = 14, ; - Width = 123, ; - ZOrderSet = 28 - *< END OBJECT: BaseClass="line" /> - - ADD OBJECT 'containerFileTypes.txtyourchoice' AS textbox WITH ; - Anchor = 0, ; - ControlSource = "Thisform.oSearchOptions.cOtherIncludes", ; - FontBold = .T., ; - FontName = "Courier New", ; - FontSize = 9, ; - Height = 24, ; - Left = 74, ; - Name = "txtyourchoice", ; - TabIndex = 23, ; - ToolTipText = "Enter custom file extensions, separated by a space.", ; - Top = 59, ; - Width = 386, ; - ZOrderSet = 20 - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'editFileTemplate' AS editbox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.oSearchOptions.cFileTemplate", ; - Height = 23, ; - Left = 47, ; - Name = "editFileTemplate", ; - TabIndex = 4, ; - ToolTipText = "(Ex: cust*.* or *edit.prg or jobs.*)", ; - Top = 166, ; - Width = 290, ; - ZOrderSet = 17 - *< END OBJECT: BaseClass="editbox" /> - - ADD OBJECT 'editSearch' AS editbox WITH ; - Anchor = 10, ; - ControlSource = "thisform.oSearchOptions.cSearchExpression", ; - FontName = "Tahoma", ; - FontSize = 9, ; - Height = 26, ; - Left = 47, ; - Name = "editSearch", ; - SelectOnEntry = .T., ; - TabIndex = 1, ; - Top = 8, ; - Width = 264, ; - ZOrderSet = 24 - *< END OBJECT: BaseClass="editbox" /> - - ADD OBJECT 'Label1' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 1, ; - Caption = " File template", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 15, ; - Left = 24, ; - Name = "Label1", ; - TabIndex = 18, ; - Top = 147, ; - Width = 66, ; - ZOrderSet = 26 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label11' AS label WITH ; - Anchor = 0, ; - AutoSize = .T., ; - BackColor = 0,128,0, ; - BackStyle = 0, ; - Caption = "From", ; - FontBold = .F., ; - FontItalic = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 15, ; - Left = 232, ; - Name = "Label11", ; - TabIndex = 22, ; - Top = 359, ; - Width = 26, ; - ZOrderSet = 13 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label12' AS label WITH ; - Anchor = 0, ; - AutoSize = .T., ; - BackColor = 0,128,0, ; - BackStyle = 0, ; - Caption = "To", ; - FontBold = .F., ; - FontItalic = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 15, ; - Left = 367, ; - Name = "Label12", ; - TabIndex = 21, ; - Top = 359, ; - Width = 14, ; - ZOrderSet = 14 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label2' AS label WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "\ - - ADD OBJECT 'Label3' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 15, ; - Left = 301, ; - Name = "Label3", ; - TabIndex = 17, ; - Top = 171, ; - Width = 2, ; - ZOrderSet = 25 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label4' AS label WITH ; - Alignment = 2, ; - BackStyle = 1, ; - Caption = "Options", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 21, ; - Name = "Label4", ; - TabIndex = 15, ; - Top = 293, ; - Width = 49, ; - ZOrderSet = 16 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label5' AS label WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "Scope:", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 5, ; - Name = "Label5", ; - TabIndex = 19, ; - Top = 42, ; - Width = 51, ; - ZOrderSet = 18 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label6' AS label WITH ; - Alignment = 2, ; - BackStyle = 1, ; - Caption = "Search mode", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 18, ; - Name = "Label6", ; - TabIndex = 15, ; - Top = 312, ; - Width = 90, ; - ZOrderSet = 1 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Label7' AS label WITH ; - Alignment = 0, ; - BackStyle = 1, ; - Caption = " Filetypes ", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 21, ; - Name = "Label7", ; - TabIndex = 16, ; - Top = 199, ; - Width = 51, ; - ZOrderSet = 19 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Optiongroup1' AS optiongroup WITH ; - ButtonCount = 3, ; - ControlSource = "thisform.oSearchOptions.nSearchMode", ; - Height = 27, ; - Left = 100, ; - Name = "Optiongroup1", ; - Top = 306, ; - Value = 1, ; - Width = 393, ; - ZOrderSet = 30, ; - Option1.Caption = "Plain Search", ; - Option1.FontSize = 8, ; - Option1.Height = 17, ; - Option1.Left = 5, ; - Option1.Name = "Option1", ; - Option1.Top = 5, ; - Option1.Value = 1, ; - Option1.Width = 100, ; - Option2.Caption = " Wildcards (* and ?)", ; - Option2.FontSize = 8, ; - Option2.Height = 17, ; - Option2.Left = 115, ; - Option2.Name = "Option2", ; - Option2.ToolTipText = "Uses the LIKE() function to perform wildcard matches.", ; - Option2.Top = 5, ; - Option2.Width = 118, ; - Option3.Caption = "Regular Expression", ; - Option3.FontSize = 8, ; - Option3.Height = 18, ; - Option3.Left = 267, ; - Option3.Name = "Option3", ; - Option3.Top = 5, ; - Option3.Width = 115 - *< END OBJECT: BaseClass="optiongroup" /> - - ADD OBJECT 'pageframeScope' AS pageframe WITH ; - Anchor = 10, ; - ErasePage = .T., ; - Height = 102, ; - HelpContextID = 0, ; - Left = 47, ; - Name = "pageframeScope", ; - PageCount = 5, ; - TabIndex = 3, ; - TabStyle = 1, ; - Top = 44, ; - Width = 462, ; - ZOrderSet = 15, ; - Page1.Caption = "Active Project", ; - Page1.Name = "Page1", ; - Page2.Caption = "Browse Project", ; - Page2.Name = "Page2", ; - Page3.Caption = "Current Dir", ; - Page3.FontSize = 9, ; - Page3.Name = "Page3", ; - Page4.Caption = "Browse Dir", ; - Page4.Name = "Page4", ; - Page5.Caption = "Recent", ; - Page5.Name = "Page5" - *< END OBJECT: BaseClass="pageframe" /> - - ADD OBJECT 'pageframeScope.Page1.chkLimitToProjectFolder' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Limit search to project home directory and sub-folders", ; - ControlSource = "thisform.oSearchOptions.lLimitToProjectFolder", ; - FontSize = 8, ; - Height = 16, ; - Left = 8, ; - Name = "chkLimitToProjectFolder", ; - Top = 46, ; - Width = 279 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pageframeScope.Page1.Label10' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Project", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 9, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 8, ; - Name = "Label10", ; - TabIndex = 27, ; - Top = 3, ; - Width = 41 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pageframeScope.Page1.txtPath' AS textbox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.cActiveProject", ; - DisabledForeColor = 0,0,0, ; - Enabled = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 21, ; - Left = 8, ; - Name = "txtPath", ; - ReadOnly = .F., ; - TabIndex = 3, ; - Top = 21, ; - Value = (""), ; - Width = 416 - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'pageframeScope.Page2.CboProject' AS combobox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.oSearchOptions.cProject", ; - DisplayCount = 40, ; - FontName = "Tahoma", ; - Height = 23, ; - Left = 8, ; - Name = "CboProject", ; - RowSource = "Thisform.oSearchEngine.oProjects", ; - RowSourceType = 10, ; - Style = 2, ; - TabIndex = 4, ; - Top = 21, ; - Width = 389 - *< END OBJECT: BaseClass="combobox" /> - - ADD OBJECT 'pageframeScope.Page2.chkLimitToProjectFolder' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Limit search to project home directory and sub-folders", ; - ControlSource = "thisform.oSearchOptions.lLimitToProjectFolder", ; - FontSize = 8, ; - Height = 16, ; - Left = 8, ; - Name = "chkLimitToProjectFolder", ; - Top = 46, ; - Width = 279 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pageframeScope.Page2.CmdDir' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "...", ; - FontName = "Tahoma", ; - FontSize = 12, ; - Height = 21, ; - Left = 402, ; - Name = "CmdDir", ; - TabIndex = 35, ; - Top = 22, ; - Width = 25 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pageframeScope.Page2.Label10' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Project", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 9, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 8, ; - Name = "Label10", ; - TabIndex = 27, ; - Top = 3, ; - Width = 41 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pageframeScope.Page3.chkSubdirectories' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Include Subdirectories", ; - ControlSource = "Thisform.oSearchOptions.lIncludeSubDirectories", ; - FontSize = 8, ; - Height = 16, ; - Left = 8, ; - Name = "chkSubdirectories", ; - TabIndex = 1, ; - Top = 46, ; - Width = 125 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pageframeScope.Page3.Label1' AS label WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "Directory", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 9, ; - ForeColor = 0,0,0, ; - Height = 17, ; - Left = 8, ; - Name = "Label1", ; - TabIndex = 27, ; - Top = 4, ; - Width = 74 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pageframeScope.Page3.txtPath' AS textbox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.cCurrentDir", ; - DisabledForeColor = 0,0,0, ; - Enabled = .F., ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 21, ; - Left = 8, ; - Name = "txtPath", ; - ReadOnly = .F., ; - TabIndex = 3, ; - Top = 23, ; - Value = (""), ; - Width = 417 - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'pageframeScope.Page4.chkSubdirectories' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Include Subdirectories", ; - ControlSource = "Thisform.oSearchOptions.lIncludeSubDirectories", ; - FontSize = 8, ; - Height = 16, ; - Left = 8, ; - Name = "chkSubdirectories", ; - TabIndex = 1, ; - Top = 46, ; - Width = 125 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pageframeScope.Page4.CmdDir' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "...", ; - FontName = "Tahoma", ; - FontSize = 12, ; - Height = 21, ; - Left = 402, ; - Name = "CmdDir", ; - TabIndex = 35, ; - Top = 22, ; - Width = 25 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pageframeScope.Page4.Command1' AS commandbutton WITH ; - Anchor = 8, ; - AutoSize = .T., ; - Caption = "Set to Current Dir", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 23, ; - Left = 298, ; - Name = "Command1", ; - TabIndex = 35, ; - Top = 46, ; - Width = 101 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pageframeScope.Page4.editPath' AS editbox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.oSearchOptions.cPath", ; - Height = 23, ; - Left = 8, ; - Name = "editPath", ; - Top = 20, ; - Width = 391 - *< END OBJECT: BaseClass="editbox" /> - - ADD OBJECT 'pageframeScope.Page4.Label1' AS label WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "Directory", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 9, ; - ForeColor = 0,0,0, ; - Height = 17, ; - Left = 8, ; - Name = "Label1", ; - TabIndex = 27, ; - Top = 4, ; - Width = 74 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pageframeScope.Page5.comboSearchScropeHistory' AS gf_combosearchscope WITH ; - BoundTo = .T., ; - ControlSource = "Thisform.oSearchOptions.cRecentScope", ; - DisplayCount = 40, ; - Height = 24, ; - Left = 33, ; - Name = "comboSearchScropeHistory", ; - Top = 24, ; - Visible = .T., ; - Width = 394 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="combobox" /> - - ADD OBJECT 'pageframeScope.Page5.imgScopeIcon' AS image WITH ; - Height = 16, ; - Left = 11, ; - Name = "imgScopeIcon", ; - Top = 27, ; - Width = 16 - *< END OBJECT: BaseClass="image" /> - - ADD OBJECT 'pageframeScope.Page5.Label1' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Recently used", ; - FontBold = .F., ; - FontName = "Tahoma", ; - FontSize = 9, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 8, ; - Name = "Label1", ; - TabIndex = 27, ; - Top = 4, ; - Width = 79 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Shape1' AS shape WITH ; - Anchor = 10, ; - BorderColor = 128,128,128, ; - Curvature = 2, ; - Height = 89, ; - Left = 9, ; - Name = "Shape1", ; - SpecialEffect = 0, ; - Style = 3, ; - Top = 204, ; - Width = 483, ; - ZOrderSet = 5 - *< END OBJECT: BaseClass="shape" /> - - ADD OBJECT 'Shape2' AS shape WITH ; - Anchor = 10, ; - BorderColor = 128,128,128, ; - Curvature = 2, ; - Height = 44, ; - Left = 12, ; - Name = "Shape2", ; - SpecialEffect = 0, ; - Style = 3, ; - Top = 152, ; - Width = 363, ; - ZOrderSet = 4 - *< END OBJECT: BaseClass="shape" /> - - ADD OBJECT 'Shape4' AS shape WITH ; - Anchor = 10, ; - BorderColor = 128,128,128, ; - Curvature = 2, ; - Height = 123, ; - Left = 8, ; - Name = "Shape4", ; - SpecialEffect = 0, ; - Style = 3, ; - Top = 299, ; - Width = 496, ; - ZOrderSet = 0 - *< END OBJECT: BaseClass="shape" /> - - ADD OBJECT 'txtTimeStampFrom' AS textbox WITH ; - Alignment = 3, ; - Anchor = 0, ; - ControlSource = "thisform.oSearchOptions.dTimeStampFrom", ; - FontName = "Tahoma", ; - FontSize = 9, ; - Height = 23, ; - Left = 263, ; - Name = "txtTimeStampFrom", ; - SelectOnEntry = .T., ; - TabIndex = 11, ; - Top = 354, ; - Value = {}, ; - Width = 95, ; - ZOrderSet = 22 - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'txtTimeStampTo' AS textbox WITH ; - Alignment = 3, ; - Anchor = 0, ; - ControlSource = "thisform.oSearchOptions.dTimeStampTo", ; - FontName = "Tahoma", ; - FontSize = 9, ; - Height = 23, ; - Left = 388, ; - Name = "txtTimeStampTo", ; - SelectOnEntry = .T., ; - TabIndex = 12, ; - Top = 354, ; - Value = {}, ; - Width = 95, ; - ZOrderSet = 23 - *< END OBJECT: BaseClass="textbox" /> - - PROCEDURE Activate - - If IsNull(This.oForm) && If Results form was closed down while this form was open - Thisform.Release() - Else - Thisform.UpdateSearchScopeVariables() - Thisform.Refresh() - Endif - - - ENDPROC - - PROCEDURE Destroy - DoDefault() - - If This.lReturn = .T. - Thisform.SaveOptions() - Thisform.oForm.comboSearchScopeHistory.SaveSearchScope(This.GetCurrentScope()) - Thisform.oForm.comboSearchScopeHistory.Value = This.GetCurrentScope() - Thisform.Top = -2000 && Move form out of view... - Thisform.oForm.Refresh() - Thisform.oForm.DoSearch() - Thisform.oForm.oGrid.SetFocus() - Endif - - Try - Thisform.oForm.lSearchFormVisible = .F. - Catch - Endtry - - Thisform.oForm = .Null. - Thisform.oSearchEngine = .Null. - Thisform.oSearchOptions = .Null. - Thisform.oMy = .Null. - - - ENDPROC - - PROCEDURE getcurrentscope - Local lcScope, lnScope - - lnScope = Thisform.oSearchOptions.nSearchScope - - Do Case - - Case lnScope = 1 - lcScope = Lower(Thisform.cActiveProject) - - Case lnScope = 2 - lcScope = Lower(Thisform.oSearchOptions.cProject) - - Case lnScope = 3 - lcScope = Lower(Thisform.cCurrentDir) - - Case lnScope = 4 - lcScope = Lower(Thisform.oSearchOptions.cPath) - - Case lnScope = 5 - lcScope = Lower(Thisform.oSearchOptions.cRecentScope) - - Endcase - - lcScope = Rtrim(Alltrim(lcScope), 0, '\') - - Return lcScope - - ENDPROC - - PROCEDURE Init - Lparameters toGoFishForm - - Local lnHeight - - lnHeight = This.Height && Force form the designer height - DoDefault(toGoFishForm) - This.Height = lnHeight - - Thisform.oSearchEngine = Createobject('GoFishSearchEngine') - Thisform.oSearchEngine.oProjects = Thisform.oForm.oSearchEngine.oProjects - - ThisForm.LoadOptions() - - Thisform.BindControls = .t. - - Thisform.Refresh() - - - ENDPROC - - PROCEDURE KeyPress - LPARAMETERS nKeyCode, nShiftAltCtrl - - If nKeyCode = 27 - Thisform.Release() - Endif - - - ENDPROC - - PROCEDURE Load - DoDefault() - - this.MaxHeight = this.Height - ENDPROC - - PROCEDURE loadoptions - *-- Make a copy of the oSearchOption object from the Results form as our starting state. - Local lnPage - - Thisform.oSearchOptions = This.CopyObjectProperties(Thisform.oForm.oSearchEngine.oSearchOptions, CreateObject('Empty')) - - lnPage = Evl(Thisform.oSearchOptions.nSearchScope, 3) - - Thisform.pageframeScope.ActivePage = lnPage - - With Thisform - .cActiveProject = Thisform.oForm.cActiveProject - .cCurrentDir = Lower(Rtrim(Thisform.oForm.cCurrentDir, 0, '\')) - *.lIncludeSubDirectoriesBrowsed = Thisform.oForm.lIncludeSubDirectoriesBrowsed - *.lIncludeSubDirectoriesCurrent = Thisform.oForm.lIncludeSubDirectoriesCurrent - Endwith - - ENDPROC - - PROCEDURE saveoptions - If IsNull(this.oForm) - Return - Endif - - This.CopyObjectProperties(Thisform.oSearchOptions, Thisform.oForm.oSearchEngine.oSearchOptions) - - With Thisform.oForm - .cActiveProject = Lower(Thisform.cActiveProject) - .cCurrentDir = Lower(Rtrim(Thisform.cCurrentDir, 0, '\')) - *.lIncludeSubDirectoriesBrowsed = Thisform.lIncludeSubDirectoriesBrowsed - *.lIncludeSubDirectoriesCurrent = Thisform.lIncludeSubDirectoriesCurrent - Endwith - - - - - - ENDPROC - - PROCEDURE setscope - Lparameters tnPage - - Thisform.oSearchOptions.nSearchScope = Thisform.pageframeScope.ActivePage - - Thisform.Refresh() - - - ENDPROC - - PROCEDURE updatesearchscopevariables - With Thisform - .cActiveProject = Lower(Alltrim(Thisform.oSearchEngine.GetActiveProject())) - .cCurrentDir = Lower(Rtrim(Thisform.oSearchEngine.GetCurrentDirectory(), 0, '\')) - .oSearchEngine.AddProject(.cActiveProject) - Endwith - - - - - - ENDPROC - - PROCEDURE validateinputs - Local loGrid, loSearchEngine, loSearchOptions, loTimeStampToControl, lcPath - - loSearchOptions = Thisform.oSearchOptions - lcScope = Alltrim(Thisform.GetCurrentScope()) - lnReturn = 1 - - *-- Validate Directory (for Curr Dir or Browsed Dir) - If InList(loSearchOptions.nSearchScope, 3, 4) - lcPath = Addbs(lcScope) - If !Directory(lcPath, 1) - lcMessage = 'Invalid Directory [ ' + lcScope + ' ].' - lnReturn = loSearchOptions.nSearchScope * -1 - Endif - Endif - - *-- Validate Project file can be found (for Active Project and Browsed Project) - If InList(loSearchOptions.nSearchScope, 1, 2) - If !File(lcScope) - lcMessage = 'Cannot find project file [ ' + lcScope + ' ].' - lnReturn = loSearchOptions.nSearchScope * -1 - Endif - Endif - - *-- Make sure at least one date is supplied if timestamp box is checked. - If loSearchOptions.lTimeStamp = .t. and Empty(loSearchOptions.dTimeStampFrom) and Empty(loSearchOptions.dTimeStampTo) - lcMessage = 'At least one TimeStamp date must be entered, or else clear checkbox.' - lnReturn = -5 - EndIf - - *-- Must Specify a search expression, unless you are searching by TimeStamps - If Empty(loSearchOptions.cSearchExpression) and !loSearchOptions.lTimeStamp - lcMessage = 'Please specify a search string.' - lnReturn = -6 - Endif - - *-- Make sure at least on box if check if FileTypes container is enabled. - If Thisform.containerFileTypes.Enabled = .t. - llAtLeastOneBoxChecked = .f. - For each loControl in This.containerFileTypes.Controls - If Upper(loControl.baseclass) = 'CHECKBOX' - If loControl.Value = .t. and !InList(Upper(loControl.Name), 'CHECK1', 'CHECK2') - llAtLeastOneBoxChecked = .t. - Endif - Endif - Endfor - If !llAtLeastOneBoxChecked and Empty(Thisform.oSearchOptions.cOtherIncludes) - lcMessage = 'You must specify file extension(s) to search.' - lnReturn = -7 - Endif - Endif - - If lnReturn < 0 - MessageBox(lcMessage + ' Please fix.', 16, 'GoFish') - Endif - - Return lnReturn - - ENDPROC - - PROCEDURE Check2.Click - Thisform.oSearchEngine.ClearReplaceSettings() - ENDPROC - - PROCEDURE Check3.Click - Thisform.oSearchEngine.ClearReplaceSettings() - ENDPROC - - PROCEDURE chkcomment.Click - *-- GF$ needs work to support the "Comments" feature... - - Thisform.oSearchEngine.ClearReplaceSettings() - ENDPROC - - PROCEDURE chkMatchCase.Click - Thisform.oSearchEngine.ClearReplaceSettings() - ENDPROC - - PROCEDURE chkMatchWholeWord.Click - Thisform.oSearchEngine.ClearReplaceSettings() - ENDPROC - - PROCEDURE chkTimeStamp.Click - DoDefault() - Thisform.Refresh() - - Thisform.txtTimeStampFrom.SetFocus() - ENDPROC - - PROCEDURE cmdCancel.Click - Thisform.lReturn = .f. - - Thisform.SaveOptions() - - Thisform.Release() - ENDPROC - - PROCEDURE CmdGoFish.Click - Local lnValidate - - lnValidate = Thisform.ValidateInputs() - - If lnValidate < 0 - - Do Case - Case lnValidate = -4 - Thisform.pageframeScope.Page4.editPath.SetFocus() - - Case lnValidate = -5 - Thisform.txtTimeStampFrom.SetFocus() - - Otherwise - Thisform.editSearch.SetFocus() - Endcase - - Return .f. - EndIf - - Thisform.lReturn = .t. - - Thisform.Release() - - - - - - - ENDPROC - - PROCEDURE CmdGoFish.Refresh - Local llEnabled - - llEnabled = !Empty(Thisform.GetCurrentScope()) - - This.Enabled = llEnabled - - ENDPROC - - PROCEDURE cmdHelp.Click - - Text to lcText PreText 3 NoSHow - The File Template is a filename/extension filter that will run along with the selections in the Filetypes region. The format is: - - [*]filename[*] (dot) [*]ext[*] - - Meaning, the filename pattern comes first and can use the wildcard character (*) at the beginning or end. - - The extension pattern, if used, must be preceded by a dot (.), and can use the wildcard character at the beginning or the end. - - If an extension is included, it will override the extensions in the FileTypes region. - EndText - - - MessageBox(lcText, 0, 'File Template Help') - ENDPROC - - PROCEDURE comboSearchExpressionHistoryDropDownArrow.GotFocus - Local loCombo - - *-- Store current value of editbox. I the user presses ESCAPE in the actual combobox, - *-- the oringal value can be recovered from here. - This.Tag = This.Parent.editSearch.Value - - loCombo = This.Parent.comboSearchExpressionHistory - - loCombo.OpenTable() - - Thisform.comboSearchExpressionHistory.Requery() - - With loCombo - .ListIndex = 1 - .Visible = .T. - .SetFocus() - Endwith - - Keyboard '{ALT+DNARROW}' && To expand the actual dropdown listbox that holds all the values - ENDPROC - - PROCEDURE comboSearchExpressionHistoryDropDownArrow.Init - this.Top = this.Parent.editSearch.top - ENDPROC - - PROCEDURE Command1.Click - Local lcFilename, lcText - - lcFilename = Thisform.oSearchEngine.cFilesToSkipFile - - If !File(lcFilename) - - Text to lcText PRETEXT 3 noshow - ** Contains names of files and folders to be skipped: one per line, case insensitive, wildcards allowed - ** -- File name (no path) - ** Main.PRG - ** FOO*.TXT - ** -- Folders (with leading and trailing backslash) - ** \Purchased\WestWind\ - ** \Temp*\ - ** -- Or combined - ** \Temp*\*.txt - - ** These files and folders will be skipped if the "Skip Files option" is checked on the Advanced form. - ** The default name and location for this file is: (Home(7) + '\GF_Files_To_Skip.txt') - - ** Blank lines and lines beginning with ** are not processed. - - EndText - - StrToFile(lcText, lcFilename) - Endif - - Modify File (lcFilename) - - ENDPROC - - PROCEDURE containerFileTypes.Check1.InteractiveChange - DODEFAULT() - - WITH this.parent - .chkscx.value = this.value - .chkvcx.value = this.value - .chkmnx.value = this.value - .chkdbc.value = this.value - .chklbx.value = this.value - .chkfrx.value = this.value - .chkpjx.value = this.value - .chkprg.value = this.value - .chkspr.value = this.value - .chkmpr.value = this.value - .chkini.value = this.value - .chkh.value = this.value - ENDWITH - ENDPROC - - PROCEDURE containerFileTypes.Check2.InteractiveChange - DODEFAULT() - - WITH This.parent - .chkhtml.value = this.value - .chkasp.value = this.value - .chkjava.value = this.value - .chkjsp.value = this.value - .chkxml.value = this.value - .chktxt.value = this.value - ENDWITH - ENDPROC - - PROCEDURE containerFileTypes.Refresh - Local llEnabled, loControl - - llEnabled = Empty(JustExt(Thisform.oSearchOptions.cFileTemplate)) - - For each loControl in this.Controls - Try - loControl.Enabled = llEnabled - Catch - EndTry - Endfor - - This.Enabled = llEnabled - ENDPROC - - PROCEDURE editFileTemplate.InteractiveChange - This.Value = This.value - Thisform.containerFileTypes.Refresh() - ENDPROC - - PROCEDURE editSearch.GotFocus - this.Tag = this.Value - - ENDPROC - - PROCEDURE pageframeScope.Page1.Activate - Thisform.SetScope(1) - ENDPROC - - PROCEDURE pageframeScope.Page1.txtPath.GotFocus - This.Tag = Upper(Alltrim(this.Value)) - ENDPROC - - PROCEDURE pageframeScope.Page1.txtPath.InteractiveChange - DODEFAULT() - - Thisform.oSearchEngine.ClearReplaceSettings() - - ENDPROC - - PROCEDURE pageframeScope.Page2.Activate - Thisform.SetScope(2) - This.cboProject.SetFocus() - ENDPROC - - PROCEDURE pageframeScope.Page2.CboProject.Valid - Thisform.Refresh() - ENDPROC - - PROCEDURE pageframeScope.Page2.CmdDir.Click - Local lcProject, lcSelectedProject - - lcSelectedProject = GetFile('PJX', 'Select Project:', 'Select') - - If Empty(lcSelectedProject) - return - Endif - - ThisForm.oSearchEngine.SetProject(lcSelectedProject) - - This.Parent.cboProject.Requery() - - This.Parent.cboProject.Value = Thisform.oSearchEngine.oSearchOptions.cProject - - Thisform.Refresh() - - ENDPROC - - PROCEDURE pageframeScope.Page3.Activate - Thisform.SetScope(3) - ENDPROC - - PROCEDURE pageframeScope.Page4.Activate - Thisform.SetScope(4) - This.editPath.SetFocus() - This.editPath.SelStart = 0 - This.editPath.SelLength = 1000 - - ENDPROC - - PROCEDURE pageframeScope.Page4.CmdDir.Click - Local lcGetDir, lcSomeDir - - lcNewPath = GetDir(Thisform.oSearchOptions.cPath, '', '', 16 + 32 + 64) - - If !Empty(lcNewPath) - Thisform.oSearchOptions.cPath = Lower(Alltrim(lcNewPath, '\')) - Endif - - Thisform.Refresh() - - - - ENDPROC - - PROCEDURE pageframeScope.Page4.Command1.Click - Thisform.oSearchOptions.cPath = Alltrim(Lower(Thisform.cCurrentDir), '\') - - Thisform.Refresh() - - With This.Parent.editPath - .SetFocus() - .SelStart = Len(Alltrim(Thisform.cCurrentDir, '\')) - Endwith - - - - ENDPROC - - PROCEDURE pageframeScope.Page4.editPath.InteractiveChange - This.Value = This.value - Thisform.cmdGoFish.Refresh() - ENDPROC - - PROCEDURE pageframeScope.Page5.Activate - - Thisform.SetScope(5) - - With This.comboSearchScropeHistory - .SetFocus() - .SelStart = 0 - .SelLength = 1000 - Endwith - - - ENDPROC - - PROCEDURE txtTimeStampFrom.Refresh - This.Enabled = Thisform.oSearchOptions.lTimeStamp - ENDPROC - - PROCEDURE txtTimeStampTo.Refresh - This.Enabled = Thisform.oSearchOptions.lTimeStamp - ENDPROC - -ENDDEFINE +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_advanced.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="gf_advanced" Baseclass="form" /> + +* \ No newline at end of file diff --git a/Source/Forms/gofish_advanced.scx b/Source/Forms/gofish_advanced.scx index 7222cdc..67c6d63 100644 Binary files a/Source/Forms/gofish_advanced.scx and b/Source/Forms/gofish_advanced.scx differ diff --git a/Source/Forms/gofish_extendsearch.SCT b/Source/Forms/gofish_extendsearch.SCT deleted file mode 100644 index df07e4d..0000000 Binary files a/Source/Forms/gofish_extendsearch.SCT and /dev/null differ diff --git a/Source/Forms/gofish_extendsearch.sc2 b/Source/Forms/gofish_extendsearch.sc2 deleted file mode 100644 index e1f18e0..0000000 --- a/Source/Forms/gofish_extendsearch.sc2 +++ /dev/null @@ -1,337 +0,0 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_extendsearch.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS gf_filter_extendsearch AS gf_filterform OF "..\lib\gofishui.vcx" - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> - - * - *p: lhascurrentfilter - * - - BorderStyle = 3 - Caption = "GoFish Extend Search" - DoCreate = .T. - Height = 184 - Left = 0 - lhascurrentfilter = .F. - Name = "GF_Filter_ExtendSearch" - Top = 0 - Width = 280 - _memberdata = - - - - Container1.containerClassName.Command1.Name = "Command1" - Container1.containerClassName.Command2.Name = "Command2" - Container1.containerClassName.Label1.Name = "Label1" - Container1.containerClassName.Left = 1087 - Container1.containerClassName.Line1.Name = "Line1" - Container1.containerClassName.Line2.Name = "Line2" - Container1.containerClassName.Name = "containerClassName" - Container1.containerClassName.Top = 94 - Container1.containerClassName.txt1.Name = "txt1" - Container1.containerFilename.Command1.Name = "Command1" - Container1.containerFilename.Command2.Name = "Command2" - Container1.containerFilename.Label1.Name = "Label1" - Container1.containerFilename.Left = 705 - Container1.containerFilename.Line1.Name = "Line1" - Container1.containerFilename.Line2.Name = "Line2" - Container1.containerFilename.Name = "containerFilename" - Container1.containerFilename.Top = 190 - Container1.containerFilename.txt1.Name = "txt1" - Container1.containerFilePath.Command1.Name = "Command1" - Container1.containerFilePath.Command2.Name = "Command2" - Container1.containerFilePath.Label1.Name = "Label1" - Container1.containerFilePath.Left = 833 - Container1.containerFilePath.Line1.Name = "Line1" - Container1.containerFilePath.Line2.Name = "Line2" - Container1.containerFilePath.Name = "containerFilePath" - Container1.containerFilePath.Top = 190 - Container1.containerFilePath.txt1.Name = "txt1" - Container1.containerFileType.chkASP.Alignment = 0 - Container1.containerFileType.chkASP.Name = "chkASP" - Container1.containerFileType.chkDBC.Alignment = 0 - Container1.containerFileType.chkDBC.Name = "chkDBC" - Container1.containerFileType.chkFRX.Alignment = 0 - Container1.containerFileType.chkFRX.Name = "chkFRX" - Container1.containerFileType.chkH.Alignment = 0 - Container1.containerFileType.chkH.Name = "chkH" - Container1.containerFileType.ChkHTML.Alignment = 0 - Container1.containerFileType.ChkHTML.Name = "ChkHTML" - Container1.containerFileType.chkini.Alignment = 0 - Container1.containerFileType.chkini.Name = "chkini" - Container1.containerFileType.chkJava.Alignment = 0 - Container1.containerFileType.chkJava.Name = "chkJava" - Container1.containerFileType.chkJSP.Alignment = 0 - Container1.containerFileType.chkJSP.Name = "chkJSP" - Container1.containerFileType.chkLBX.Alignment = 0 - Container1.containerFileType.chkLBX.Name = "chkLBX" - Container1.containerFileType.chkMNX.Alignment = 0 - Container1.containerFileType.chkMNX.Name = "chkMNX" - Container1.containerFileType.chkMPR.Alignment = 0 - Container1.containerFileType.chkMPR.Name = "chkMPR" - Container1.containerFileType.chkPJX.Alignment = 0 - Container1.containerFileType.chkPJX.Name = "chkPJX" - Container1.containerFileType.chkPRG.Alignment = 0 - Container1.containerFileType.chkPRG.Name = "chkPRG" - Container1.containerFileType.chkSCX.Alignment = 0 - Container1.containerFileType.chkSCX.Name = "chkSCX" - Container1.containerFileType.chkSPR.Alignment = 0 - Container1.containerFileType.chkSPR.Name = "chkSPR" - Container1.containerFileType.chkTXT.Alignment = 0 - Container1.containerFileType.chkTXT.Name = "chkTXT" - Container1.containerFileType.chkVCX.Alignment = 0 - Container1.containerFileType.chkVCX.Name = "chkVCX" - Container1.containerFileType.chkXML.Alignment = 0 - Container1.containerFileType.chkXML.Name = "chkXML" - Container1.containerFileType.Command1.Name = "Command1" - Container1.containerFileType.Command2.Name = "Command2" - Container1.containerFileType.Label1.Name = "Label1" - Container1.containerFileType.Left = 338 - Container1.containerFileType.Line1.Name = "Line1" - Container1.containerFileType.Line2.Name = "Line2" - Container1.containerFileType.Name = "containerFileType" - Container1.containerFileType.Top = 8 - Container1.containerMatchedLine.Command1.Name = "Command1" - Container1.containerMatchedLine.Command2.Name = "Command2" - Container1.containerMatchedLine.Label1.Name = "Label1" - Container1.containerMatchedLine.Left = 705 - Container1.containerMatchedLine.Line1.Name = "Line1" - Container1.containerMatchedLine.Line2.Name = "Line2" - Container1.containerMatchedLine.Name = "containerMatchedLine" - Container1.containerMatchedLine.Top = 9 - Container1.containerMatchedLine.txt1.Name = "txt1" - Container1.containerMatchType.Check1.Alignment = 0 - Container1.containerMatchType.Check1.Name = "Check1" - Container1.containerMatchType.Check10.Alignment = 0 - Container1.containerMatchType.Check10.Name = "Check10" - Container1.containerMatchType.Check11.Alignment = 0 - Container1.containerMatchType.Check11.Name = "Check11" - Container1.containerMatchType.Check12.Alignment = 0 - Container1.containerMatchType.Check12.Name = "Check12" - Container1.containerMatchType.Check14.Alignment = 0 - Container1.containerMatchType.Check14.Name = "Check14" - Container1.containerMatchType.Check16.Alignment = 0 - Container1.containerMatchType.Check16.Name = "Check16" - Container1.containerMatchType.Check17.Alignment = 0 - Container1.containerMatchType.Check17.Name = "Check17" - Container1.containerMatchType.Check18.Alignment = 0 - Container1.containerMatchType.Check18.Name = "Check18" - Container1.containerMatchType.Check19.Alignment = 0 - Container1.containerMatchType.Check19.Name = "Check19" - Container1.containerMatchType.Check2.Alignment = 0 - Container1.containerMatchType.Check2.Name = "Check2" - Container1.containerMatchType.Check20.Alignment = 0 - Container1.containerMatchType.Check20.Name = "Check20" - Container1.containerMatchType.Check21.Alignment = 0 - Container1.containerMatchType.Check21.Name = "Check21" - Container1.containerMatchType.Check22.Alignment = 0 - Container1.containerMatchType.Check22.Name = "Check22" - Container1.containerMatchType.Check23.Alignment = 0 - Container1.containerMatchType.Check23.Name = "Check23" - Container1.containerMatchType.Check24.Alignment = 0 - Container1.containerMatchType.Check24.Name = "Check24" - Container1.containerMatchType.Check3.Alignment = 0 - Container1.containerMatchType.Check3.Name = "Check3" - Container1.containerMatchType.Check4.Alignment = 0 - Container1.containerMatchType.Check4.Name = "Check4" - Container1.containerMatchType.Check5.Alignment = 0 - Container1.containerMatchType.Check5.Name = "Check5" - Container1.containerMatchType.Check7.Alignment = 0 - Container1.containerMatchType.Check7.Name = "Check7" - Container1.containerMatchType.Check8.Alignment = 0 - Container1.containerMatchType.Check8.Name = "Check8" - Container1.containerMatchType.Check9.Alignment = 0 - Container1.containerMatchType.Check9.Name = "Check9" - Container1.containerMatchType.Command1.Name = "Command1" - Container1.containerMatchType.Command2.Name = "Command2" - Container1.containerMatchType.Gf_filtercheckbox1.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox1.Name = "Gf_filtercheckbox1" - Container1.containerMatchType.Gf_filtercheckbox2.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox2.Name = "Gf_filtercheckbox2" - Container1.containerMatchType.Gf_filtercheckbox3.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox3.Name = "Gf_filtercheckbox3" - Container1.containerMatchType.Gf_filtercheckbox4.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox4.Name = "Gf_filtercheckbox4" - Container1.containerMatchType.Gf_filtercheckbox5.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox5.Name = "Gf_filtercheckbox5" - Container1.containerMatchType.Gf_filtercheckbox6.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox6.Name = "Gf_filtercheckbox6" - Container1.containerMatchType.Gf_filtercheckbox7.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox7.Name = "Gf_filtercheckbox7" - Container1.containerMatchType.Label1.Name = "Label1" - Container1.containerMatchType.Label2.Name = "Label2" - Container1.containerMatchType.Left = 449 - Container1.containerMatchType.Line1.Name = "Line1" - Container1.containerMatchType.Line2.Name = "Line2" - Container1.containerMatchType.Line3.Name = "Line3" - Container1.containerMatchType.Name = "containerMatchType" - Container1.containerMatchType.Top = 8 - Container1.containerMethodName.Command1.Name = "Command1" - Container1.containerMethodName.Command2.Name = "Command2" - Container1.containerMethodName.Label1.Name = "Label1" - Container1.containerMethodName.Left = 706 - Container1.containerMethodName.Line1.Name = "Line1" - Container1.containerMethodName.Line2.Name = "Line2" - Container1.containerMethodName.Name = "containerMethodName" - Container1.containerMethodName.Top = 94 - Container1.containerMethodName.txt1.Name = "txt1" - Container1.containerObjectName.Command1.Name = "Command1" - Container1.containerObjectName.Command2.Name = "Command2" - Container1.containerObjectName.Label1.Name = "Label1" - Container1.containerObjectName.Left = 704 - Container1.containerObjectName.Line1.Name = "Line1" - Container1.containerObjectName.Line2.Name = "Line2" - Container1.containerObjectName.Name = "containerObjectName" - Container1.containerObjectName.Top = 277 - Container1.containerObjectName.txt1.Name = "txt1" - Container1.containerTimestamp.chkTimeStamp.Alignment = 0 - Container1.containerTimestamp.chkTimeStamp.Name = "chkTimeStamp" - Container1.containerTimestamp.Command1.Name = "Command1" - Container1.containerTimestamp.Command2.Name = "Command2" - Container1.containerTimestamp.Label1.Name = "Label1" - Container1.containerTimestamp.Label11.Name = "Label11" - Container1.containerTimestamp.Label12.Name = "Label12" - Container1.containerTimestamp.Left = 961 - Container1.containerTimestamp.Line1.Name = "Line1" - Container1.containerTimestamp.Line2.Name = "Line2" - Container1.containerTimestamp.Name = "containerTimestamp" - Container1.containerTimestamp.Top = 193 - Container1.containerTimestamp.txtTimeStampFrom.Name = "txtTimeStampFrom" - Container1.containerTimestamp.txtTimeStampTo.Name = "txtTimeStampTo" - Container1.Gf_textboxcontainer1.Command1.Name = "Command1" - Container1.Gf_textboxcontainer1.Command2.Name = "Command2" - Container1.Gf_textboxcontainer1.Label1.Name = "Label1" - Container1.Gf_textboxcontainer1.Left = 8 - Container1.Gf_textboxcontainer1.Line1.Name = "Line1" - Container1.Gf_textboxcontainer1.Line2.Name = "Line2" - Container1.Gf_textboxcontainer1.Name = "Gf_textboxcontainer1" - Container1.Gf_textboxcontainer1.Top = 8 - Container1.Gf_textboxcontainer1.txt1.Name = "txt1" - Container1.Height = 102 - Container1.Left = 4 - Container1.Name = "Container1" - Container1.Textboxcontainer1.Command1.Name = "Command1" - Container1.Textboxcontainer1.Command2.Name = "Command2" - Container1.Textboxcontainer1.Label1.Name = "Label1" - Container1.Textboxcontainer1.Left = 961 - Container1.Textboxcontainer1.Line1.Name = "Line1" - Container1.Textboxcontainer1.Line2.Name = "Line2" - Container1.Textboxcontainer1.Name = "Textboxcontainer1" - Container1.Textboxcontainer1.Top = 94 - Container1.Textboxcontainer1.txt1.Name = "txt1" - Container1.Textboxcontainer2.Command1.Name = "Command1" - Container1.Textboxcontainer2.Command2.Name = "Command2" - Container1.Textboxcontainer2.Label1.Name = "Label1" - Container1.Textboxcontainer2.Left = 834 - Container1.Textboxcontainer2.Line1.Name = "Line1" - Container1.Textboxcontainer2.Line2.Name = "Line2" - Container1.Textboxcontainer2.Name = "Textboxcontainer2" - Container1.Textboxcontainer2.Top = 94 - Container1.Textboxcontainer2.txt1.Name = "txt1" - Container1.Textboxcontainer3.Command1.Name = "Command1" - Container1.Textboxcontainer3.Command2.Name = "Command2" - Container1.Textboxcontainer3.Label1.Name = "Label1" - Container1.Textboxcontainer3.Left = 834 - Container1.Textboxcontainer3.Line1.Name = "Line1" - Container1.Textboxcontainer3.Line2.Name = "Line2" - Container1.Textboxcontainer3.Name = "Textboxcontainer3" - Container1.Textboxcontainer3.Top = 276 - Container1.Textboxcontainer3.txt1.Name = "txt1" - Container1.Top = -2 - Container1.Width = 1712 - Shape1.Anchor = 0 - Shape1.Name = "Shape1" - cmdOK.Anchor = 0 - cmdOK.Left = 30 - cmdOK.Name = "cmdOK" - cmdOK.Top = 102 - Command2.Anchor = 0 - Command2.Left = 1275 - Command2.Name = "Command2" - Command3.Anchor = 0 - Command3.Left = 186 - Command3.Name = "Command3" - Command3.Top = 102 - Check1.Alignment = 0 - Check1.Anchor = 0 - Check1.Name = "Check1" - Check2.Alignment = 0 - Check2.Anchor = 0 - Check2.Name = "Check2" - Label4.Anchor = 0 - Label4.Name = "Label4" - Line1.Left = 0 - Line1.Name = "Line1" - Line1.Top = 90 - - ADD OBJECT 'Label1' AS label WITH ; - Caption = "Label1", ; - ForeColor = 255,0,0, ; - Height = 41, ; - Left = 12, ; - Name = "Label1", ; - Top = 138, ; - Width = 256, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - PROCEDURE Init - Lparameters toForm, toFilter - - Local lcProcCodeValue - DoDefault(m.toForm, m.toFilter) - - If m.toForm.lApplyFilter - Thisform.lHasCurrentFilter = .F. - Else - lcProcCodeValue = Thisform.oFilter.ProcCode_Filter - Thisform.oFilter.ProcCode_Filter = '' - - Thisform.Buildfilterstring() - Thisform.lHasCurrentFilter = Not Empty(Thisform.cFilter ) - - Thisform.oFilter.ProcCode_Filter = m.lcProcCodeValue - Endif - - Thisform.Refresh() - - - ENDPROC - - PROCEDURE Command3.Click - DoDefault() - - Thisform.lHasCurrentFilter = .F. - thisform.Refresh() - ENDPROC - - PROCEDURE Label1.Refresh - If Thisform.lHasCurrentFilter - This.Visible = .T. - This.Caption = 'Caution: There are other filters that will take effect if you click "Apply". See the filter form.' - Else - This.Visible = .F. - Endif - ENDPROC - -ENDDEFINE diff --git a/Source/Forms/gofish_filter.SCT b/Source/Forms/gofish_filter.SCT index e6a76fc..2b0d449 100644 Binary files a/Source/Forms/gofish_filter.SCT and b/Source/Forms/gofish_filter.SCT differ diff --git a/Source/Forms/gofish_filter.dataenvironment.sc2 b/Source/Forms/gofish_filter.dataenvironment.sc2 new file mode 100644 index 0000000..78ea252 --- /dev/null +++ b/Source/Forms/gofish_filter.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_filter.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gofish_filter.gf_filterform1.sc2 b/Source/Forms/gofish_filter.gf_filterform1.sc2 new file mode 100644 index 0000000..d260d22 --- /dev/null +++ b/Source/Forms/gofish_filter.gf_filterform1.sc2 @@ -0,0 +1,215 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_filter.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS gf_filterform1 AS gf_filterform OF "..\lib\gofishui.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + * + cuisettingsfile = GF_Filter_Form_Settings.xml + DoCreate = .T. + Name = "GF_FilterForm1" + Container1.containerClassName.Command1.Name = "Command1" + Container1.containerClassName.Command2.Name = "Command2" + Container1.containerClassName.Label1.Name = "Label1" + Container1.containerClassName.Line1.Name = "Line1" + Container1.containerClassName.Line2.Name = "Line2" + Container1.containerClassName.Name = "containerClassName" + Container1.containerClassName.txt1.Name = "txt1" + Container1.containerFilename.Command1.Name = "Command1" + Container1.containerFilename.Command2.Name = "Command2" + Container1.containerFilename.Label1.Name = "Label1" + Container1.containerFilename.Line1.Name = "Line1" + Container1.containerFilename.Line2.Name = "Line2" + Container1.containerFilename.Name = "containerFilename" + Container1.containerFilename.txt1.Name = "txt1" + Container1.containerFilePath.Command1.Name = "Command1" + Container1.containerFilePath.Command2.Name = "Command2" + Container1.containerFilePath.Label1.Name = "Label1" + Container1.containerFilePath.Line1.Name = "Line1" + Container1.containerFilePath.Line2.Name = "Line2" + Container1.containerFilePath.Name = "containerFilePath" + Container1.containerFilePath.txt1.Name = "txt1" + Container1.containerFileType.chkASP.Alignment = 0 + Container1.containerFileType.chkASP.Name = "chkASP" + Container1.containerFileType.chkDBC.Alignment = 0 + Container1.containerFileType.chkDBC.Name = "chkDBC" + Container1.containerFileType.chkFRX.Alignment = 0 + Container1.containerFileType.chkFRX.Name = "chkFRX" + Container1.containerFileType.chkH.Alignment = 0 + Container1.containerFileType.chkH.Name = "chkH" + Container1.containerFileType.ChkHTML.Alignment = 0 + Container1.containerFileType.ChkHTML.Name = "ChkHTML" + Container1.containerFileType.chkini.Alignment = 0 + Container1.containerFileType.chkini.Name = "chkini" + Container1.containerFileType.chkJava.Alignment = 0 + Container1.containerFileType.chkJava.Name = "chkJava" + Container1.containerFileType.chkJSP.Alignment = 0 + Container1.containerFileType.chkJSP.Name = "chkJSP" + Container1.containerFileType.chkLBX.Alignment = 0 + Container1.containerFileType.chkLBX.Name = "chkLBX" + Container1.containerFileType.chkMNX.Alignment = 0 + Container1.containerFileType.chkMNX.Name = "chkMNX" + Container1.containerFileType.chkMPR.Alignment = 0 + Container1.containerFileType.chkMPR.Name = "chkMPR" + Container1.containerFileType.chkPJX.Alignment = 0 + Container1.containerFileType.chkPJX.Name = "chkPJX" + Container1.containerFileType.chkPRG.Alignment = 0 + Container1.containerFileType.chkPRG.Name = "chkPRG" + Container1.containerFileType.chkSCX.Alignment = 0 + Container1.containerFileType.chkSCX.Name = "chkSCX" + Container1.containerFileType.chkSPR.Alignment = 0 + Container1.containerFileType.chkSPR.Name = "chkSPR" + Container1.containerFileType.chkTXT.Alignment = 0 + Container1.containerFileType.chkTXT.Name = "chkTXT" + Container1.containerFileType.chkVCX.Alignment = 0 + Container1.containerFileType.chkVCX.Name = "chkVCX" + Container1.containerFileType.chkXML.Alignment = 0 + Container1.containerFileType.chkXML.Name = "chkXML" + Container1.containerFileType.Command1.Name = "Command1" + Container1.containerFileType.Command2.Name = "Command2" + Container1.containerFileType.Label1.Name = "Label1" + Container1.containerFileType.Line1.Name = "Line1" + Container1.containerFileType.Line2.Name = "Line2" + Container1.containerFileType.Name = "containerFileType" + Container1.containerMatchedLine.Command1.Name = "Command1" + Container1.containerMatchedLine.Command2.Name = "Command2" + Container1.containerMatchedLine.Label1.Name = "Label1" + Container1.containerMatchedLine.Line1.Name = "Line1" + Container1.containerMatchedLine.Line2.Name = "Line2" + Container1.containerMatchedLine.Name = "containerMatchedLine" + Container1.containerMatchedLine.txt1.Name = "txt1" + Container1.containerMatchType.Check1.Alignment = 0 + Container1.containerMatchType.Check1.Name = "Check1" + Container1.containerMatchType.Check10.Alignment = 0 + Container1.containerMatchType.Check10.Name = "Check10" + Container1.containerMatchType.Check11.Alignment = 0 + Container1.containerMatchType.Check11.Name = "Check11" + Container1.containerMatchType.Check12.Alignment = 0 + Container1.containerMatchType.Check12.Name = "Check12" + Container1.containerMatchType.Check14.Alignment = 0 + Container1.containerMatchType.Check14.Name = "Check14" + Container1.containerMatchType.Check16.Alignment = 0 + Container1.containerMatchType.Check16.Name = "Check16" + Container1.containerMatchType.Check17.Alignment = 0 + Container1.containerMatchType.Check17.Name = "Check17" + Container1.containerMatchType.Check18.Alignment = 0 + Container1.containerMatchType.Check18.Name = "Check18" + Container1.containerMatchType.Check19.Alignment = 0 + Container1.containerMatchType.Check19.Name = "Check19" + Container1.containerMatchType.Check2.Alignment = 0 + Container1.containerMatchType.Check2.Name = "Check2" + Container1.containerMatchType.Check20.Alignment = 0 + Container1.containerMatchType.Check20.Name = "Check20" + Container1.containerMatchType.Check21.Alignment = 0 + Container1.containerMatchType.Check21.Name = "Check21" + Container1.containerMatchType.Check22.Alignment = 0 + Container1.containerMatchType.Check22.Name = "Check22" + Container1.containerMatchType.Check23.Alignment = 0 + Container1.containerMatchType.Check23.Name = "Check23" + Container1.containerMatchType.Check24.Alignment = 0 + Container1.containerMatchType.Check24.Name = "Check24" + Container1.containerMatchType.Check3.Alignment = 0 + Container1.containerMatchType.Check3.Name = "Check3" + Container1.containerMatchType.Check4.Alignment = 0 + Container1.containerMatchType.Check4.Name = "Check4" + Container1.containerMatchType.Check5.Alignment = 0 + Container1.containerMatchType.Check5.Name = "Check5" + Container1.containerMatchType.Check7.Alignment = 0 + Container1.containerMatchType.Check7.Name = "Check7" + Container1.containerMatchType.Check8.Alignment = 0 + Container1.containerMatchType.Check8.Name = "Check8" + Container1.containerMatchType.Check9.Alignment = 0 + Container1.containerMatchType.Check9.Name = "Check9" + Container1.containerMatchType.Command1.Name = "Command1" + Container1.containerMatchType.Command2.Name = "Command2" + Container1.containerMatchType.Gf_filtercheckbox1.Alignment = 0 + Container1.containerMatchType.Gf_filtercheckbox1.Name = "Gf_filtercheckbox1" + Container1.containerMatchType.Gf_filtercheckbox2.Alignment = 0 + Container1.containerMatchType.Gf_filtercheckbox2.Name = "Gf_filtercheckbox2" + Container1.containerMatchType.Gf_filtercheckbox3.Alignment = 0 + Container1.containerMatchType.Gf_filtercheckbox3.Name = "Gf_filtercheckbox3" + Container1.containerMatchType.Gf_filtercheckbox4.Alignment = 0 + Container1.containerMatchType.Gf_filtercheckbox4.Name = "Gf_filtercheckbox4" + Container1.containerMatchType.Gf_filtercheckbox5.Alignment = 0 + Container1.containerMatchType.Gf_filtercheckbox5.Name = "Gf_filtercheckbox5" + Container1.containerMatchType.Gf_filtercheckbox6.Alignment = 0 + Container1.containerMatchType.Gf_filtercheckbox6.Name = "Gf_filtercheckbox6" + Container1.containerMatchType.Gf_filtercheckbox7.Alignment = 0 + Container1.containerMatchType.Gf_filtercheckbox7.Name = "Gf_filtercheckbox7" + Container1.containerMatchType.Label1.Name = "Label1" + Container1.containerMatchType.Label2.Name = "Label2" + Container1.containerMatchType.Line1.Name = "Line1" + Container1.containerMatchType.Line2.Name = "Line2" + Container1.containerMatchType.Line3.Name = "Line3" + Container1.containerMatchType.Name = "containerMatchType" + Container1.containerMethodName.Command1.Name = "Command1" + Container1.containerMethodName.Command2.Name = "Command2" + Container1.containerMethodName.Label1.Name = "Label1" + Container1.containerMethodName.Line1.Name = "Line1" + Container1.containerMethodName.Line2.Name = "Line2" + Container1.containerMethodName.Name = "containerMethodName" + Container1.containerMethodName.txt1.Name = "txt1" + Container1.containerObjectName.Command1.Name = "Command1" + Container1.containerObjectName.Command2.Name = "Command2" + Container1.containerObjectName.Label1.Name = "Label1" + Container1.containerObjectName.Line1.Name = "Line1" + Container1.containerObjectName.Line2.Name = "Line2" + Container1.containerObjectName.Name = "containerObjectName" + Container1.containerObjectName.txt1.Name = "txt1" + Container1.containerTimestamp.chkTimeStamp.Alignment = 0 + Container1.containerTimestamp.chkTimeStamp.Name = "chkTimeStamp" + Container1.containerTimestamp.Command1.Name = "Command1" + Container1.containerTimestamp.Command2.Name = "Command2" + Container1.containerTimestamp.Label1.Name = "Label1" + Container1.containerTimestamp.Label11.Name = "Label11" + Container1.containerTimestamp.Label12.Name = "Label12" + Container1.containerTimestamp.Line1.Name = "Line1" + Container1.containerTimestamp.Line2.Name = "Line2" + Container1.containerTimestamp.Name = "containerTimestamp" + Container1.containerTimestamp.txtTimeStampFrom.Name = "txtTimeStampFrom" + Container1.containerTimestamp.txtTimeStampTo.Name = "txtTimeStampTo" + Container1.Gf_textboxcontainer1.Command1.Name = "Command1" + Container1.Gf_textboxcontainer1.Command2.Name = "Command2" + Container1.Gf_textboxcontainer1.Label1.Name = "Label1" + Container1.Gf_textboxcontainer1.Line1.Name = "Line1" + Container1.Gf_textboxcontainer1.Line2.Name = "Line2" + Container1.Gf_textboxcontainer1.Name = "Gf_textboxcontainer1" + Container1.Gf_textboxcontainer1.txt1.Name = "txt1" + Container1.Name = "Container1" + Container1.Textboxcontainer1.Command1.Name = "Command1" + Container1.Textboxcontainer1.Command2.Name = "Command2" + Container1.Textboxcontainer1.Label1.Name = "Label1" + Container1.Textboxcontainer1.Line1.Name = "Line1" + Container1.Textboxcontainer1.Line2.Name = "Line2" + Container1.Textboxcontainer1.Name = "Textboxcontainer1" + Container1.Textboxcontainer1.txt1.Name = "txt1" + Container1.Textboxcontainer2.Command1.Name = "Command1" + Container1.Textboxcontainer2.Command2.Name = "Command2" + Container1.Textboxcontainer2.Label1.Name = "Label1" + Container1.Textboxcontainer2.Line1.Name = "Line1" + Container1.Textboxcontainer2.Line2.Name = "Line2" + Container1.Textboxcontainer2.Name = "Textboxcontainer2" + Container1.Textboxcontainer2.txt1.Name = "txt1" + Container1.Textboxcontainer3.Command1.Name = "Command1" + Container1.Textboxcontainer3.Command2.Name = "Command2" + Container1.Textboxcontainer3.Label1.Name = "Label1" + Container1.Textboxcontainer3.Line1.Name = "Line1" + Container1.Textboxcontainer3.Line2.Name = "Line2" + Container1.Textboxcontainer3.Name = "Textboxcontainer3" + Container1.Textboxcontainer3.txt1.Name = "txt1" + Shape1.Name = "Shape1" + cmdOK.Name = "cmdOK" + Command2.Name = "Command2" + Command3.Name = "Command3" + Check1.Alignment = 0 + Check1.Name = "Check1" + Check2.Alignment = 0 + Check2.Name = "Check2" + Label4.Name = "Label4" + Line1.Name = "Line1" + * + +ENDDEFINE diff --git a/Source/Forms/gofish_filter.sc2 b/Source/Forms/gofish_filter.sc2 index 177ef44..4b95b0f 100644 --- a/Source/Forms/gofish_filter.sc2 +++ b/Source/Forms/gofish_filter.sc2 @@ -1,225 +1,11 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_filter.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS gf_filterform1 AS gf_filterform OF "..\lib\gofishui.vcx" - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - DoCreate = .T. - Name = "Gf_filterform1" - Container1.containerClassName.Command1.Name = "Command1" - Container1.containerClassName.Command2.Name = "Command2" - Container1.containerClassName.Label1.Name = "Label1" - Container1.containerClassName.Line1.Name = "Line1" - Container1.containerClassName.Line2.Name = "Line2" - Container1.containerClassName.Name = "containerClassName" - Container1.containerClassName.txt1.Name = "txt1" - Container1.containerFilename.Command1.Name = "Command1" - Container1.containerFilename.Command2.Name = "Command2" - Container1.containerFilename.Label1.Name = "Label1" - Container1.containerFilename.Line1.Name = "Line1" - Container1.containerFilename.Line2.Name = "Line2" - Container1.containerFilename.Name = "containerFilename" - Container1.containerFilename.txt1.Name = "txt1" - Container1.containerFilePath.Command1.Name = "Command1" - Container1.containerFilePath.Command2.Name = "Command2" - Container1.containerFilePath.Label1.Name = "Label1" - Container1.containerFilePath.Line1.Name = "Line1" - Container1.containerFilePath.Line2.Name = "Line2" - Container1.containerFilePath.Name = "containerFilePath" - Container1.containerFilePath.txt1.Name = "txt1" - Container1.containerFileType.chkASP.Alignment = 0 - Container1.containerFileType.chkASP.Name = "chkASP" - Container1.containerFileType.chkDBC.Alignment = 0 - Container1.containerFileType.chkDBC.Name = "chkDBC" - Container1.containerFileType.chkFRX.Alignment = 0 - Container1.containerFileType.chkFRX.Name = "chkFRX" - Container1.containerFileType.chkH.Alignment = 0 - Container1.containerFileType.chkH.Name = "chkH" - Container1.containerFileType.ChkHTML.Alignment = 0 - Container1.containerFileType.ChkHTML.Name = "ChkHTML" - Container1.containerFileType.chkini.Alignment = 0 - Container1.containerFileType.chkini.Name = "chkini" - Container1.containerFileType.chkJava.Alignment = 0 - Container1.containerFileType.chkJava.Name = "chkJava" - Container1.containerFileType.chkJSP.Alignment = 0 - Container1.containerFileType.chkJSP.Name = "chkJSP" - Container1.containerFileType.chkLBX.Alignment = 0 - Container1.containerFileType.chkLBX.Name = "chkLBX" - Container1.containerFileType.chkMNX.Alignment = 0 - Container1.containerFileType.chkMNX.Name = "chkMNX" - Container1.containerFileType.chkMPR.Alignment = 0 - Container1.containerFileType.chkMPR.Name = "chkMPR" - Container1.containerFileType.chkPJX.Alignment = 0 - Container1.containerFileType.chkPJX.Name = "chkPJX" - Container1.containerFileType.chkPRG.Alignment = 0 - Container1.containerFileType.chkPRG.Name = "chkPRG" - Container1.containerFileType.chkSCX.Alignment = 0 - Container1.containerFileType.chkSCX.Name = "chkSCX" - Container1.containerFileType.chkSPR.Alignment = 0 - Container1.containerFileType.chkSPR.Name = "chkSPR" - Container1.containerFileType.chkTXT.Alignment = 0 - Container1.containerFileType.chkTXT.Name = "chkTXT" - Container1.containerFileType.chkVCX.Alignment = 0 - Container1.containerFileType.chkVCX.Name = "chkVCX" - Container1.containerFileType.chkXML.Alignment = 0 - Container1.containerFileType.chkXML.Name = "chkXML" - Container1.containerFileType.Command1.Name = "Command1" - Container1.containerFileType.Command2.Name = "Command2" - Container1.containerFileType.Label1.Name = "Label1" - Container1.containerFileType.Line1.Name = "Line1" - Container1.containerFileType.Line2.Name = "Line2" - Container1.containerFileType.Name = "containerFileType" - Container1.containerMatchedLine.Command1.Name = "Command1" - Container1.containerMatchedLine.Command2.Name = "Command2" - Container1.containerMatchedLine.Label1.Name = "Label1" - Container1.containerMatchedLine.Line1.Name = "Line1" - Container1.containerMatchedLine.Line2.Name = "Line2" - Container1.containerMatchedLine.Name = "containerMatchedLine" - Container1.containerMatchedLine.txt1.Name = "txt1" - Container1.containerMatchType.Check1.Alignment = 0 - Container1.containerMatchType.Check1.Name = "Check1" - Container1.containerMatchType.Check10.Alignment = 0 - Container1.containerMatchType.Check10.Name = "Check10" - Container1.containerMatchType.Check11.Alignment = 0 - Container1.containerMatchType.Check11.Name = "Check11" - Container1.containerMatchType.Check12.Alignment = 0 - Container1.containerMatchType.Check12.Name = "Check12" - Container1.containerMatchType.Check14.Alignment = 0 - Container1.containerMatchType.Check14.Name = "Check14" - Container1.containerMatchType.Check16.Alignment = 0 - Container1.containerMatchType.Check16.Name = "Check16" - Container1.containerMatchType.Check17.Alignment = 0 - Container1.containerMatchType.Check17.Name = "Check17" - Container1.containerMatchType.Check18.Alignment = 0 - Container1.containerMatchType.Check18.Name = "Check18" - Container1.containerMatchType.Check19.Alignment = 0 - Container1.containerMatchType.Check19.Name = "Check19" - Container1.containerMatchType.Check2.Alignment = 0 - Container1.containerMatchType.Check2.Name = "Check2" - Container1.containerMatchType.Check20.Alignment = 0 - Container1.containerMatchType.Check20.Name = "Check20" - Container1.containerMatchType.Check21.Alignment = 0 - Container1.containerMatchType.Check21.Name = "Check21" - Container1.containerMatchType.Check22.Alignment = 0 - Container1.containerMatchType.Check22.Name = "Check22" - Container1.containerMatchType.Check23.Alignment = 0 - Container1.containerMatchType.Check23.Name = "Check23" - Container1.containerMatchType.Check24.Alignment = 0 - Container1.containerMatchType.Check24.Name = "Check24" - Container1.containerMatchType.Check3.Alignment = 0 - Container1.containerMatchType.Check3.Name = "Check3" - Container1.containerMatchType.Check4.Alignment = 0 - Container1.containerMatchType.Check4.Name = "Check4" - Container1.containerMatchType.Check5.Alignment = 0 - Container1.containerMatchType.Check5.Name = "Check5" - Container1.containerMatchType.Check7.Alignment = 0 - Container1.containerMatchType.Check7.Name = "Check7" - Container1.containerMatchType.Check8.Alignment = 0 - Container1.containerMatchType.Check8.Name = "Check8" - Container1.containerMatchType.Check9.Alignment = 0 - Container1.containerMatchType.Check9.Name = "Check9" - Container1.containerMatchType.Command1.Name = "Command1" - Container1.containerMatchType.Command2.Name = "Command2" - Container1.containerMatchType.Gf_filtercheckbox1.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox1.Name = "Gf_filtercheckbox1" - Container1.containerMatchType.Gf_filtercheckbox2.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox2.Name = "Gf_filtercheckbox2" - Container1.containerMatchType.Gf_filtercheckbox3.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox3.Name = "Gf_filtercheckbox3" - Container1.containerMatchType.Gf_filtercheckbox4.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox4.Name = "Gf_filtercheckbox4" - Container1.containerMatchType.Gf_filtercheckbox5.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox5.Name = "Gf_filtercheckbox5" - Container1.containerMatchType.Gf_filtercheckbox6.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox6.Name = "Gf_filtercheckbox6" - Container1.containerMatchType.Gf_filtercheckbox7.Alignment = 0 - Container1.containerMatchType.Gf_filtercheckbox7.Name = "Gf_filtercheckbox7" - Container1.containerMatchType.Label1.Name = "Label1" - Container1.containerMatchType.Label2.Name = "Label2" - Container1.containerMatchType.Line1.Name = "Line1" - Container1.containerMatchType.Line2.Name = "Line2" - Container1.containerMatchType.Line3.Name = "Line3" - Container1.containerMatchType.Name = "containerMatchType" - Container1.containerMethodName.Command1.Name = "Command1" - Container1.containerMethodName.Command2.Name = "Command2" - Container1.containerMethodName.Label1.Name = "Label1" - Container1.containerMethodName.Line1.Name = "Line1" - Container1.containerMethodName.Line2.Name = "Line2" - Container1.containerMethodName.Name = "containerMethodName" - Container1.containerMethodName.txt1.Name = "txt1" - Container1.containerObjectName.Command1.Name = "Command1" - Container1.containerObjectName.Command2.Name = "Command2" - Container1.containerObjectName.Label1.Name = "Label1" - Container1.containerObjectName.Line1.Name = "Line1" - Container1.containerObjectName.Line2.Name = "Line2" - Container1.containerObjectName.Name = "containerObjectName" - Container1.containerObjectName.txt1.Name = "txt1" - Container1.containerTimestamp.chkTimeStamp.Alignment = 0 - Container1.containerTimestamp.chkTimeStamp.Name = "chkTimeStamp" - Container1.containerTimestamp.Command1.Name = "Command1" - Container1.containerTimestamp.Command2.Name = "Command2" - Container1.containerTimestamp.Label1.Name = "Label1" - Container1.containerTimestamp.Label11.Name = "Label11" - Container1.containerTimestamp.Label12.Name = "Label12" - Container1.containerTimestamp.Line1.Name = "Line1" - Container1.containerTimestamp.Line2.Name = "Line2" - Container1.containerTimestamp.Name = "containerTimestamp" - Container1.containerTimestamp.txtTimeStampFrom.Name = "txtTimeStampFrom" - Container1.containerTimestamp.txtTimeStampTo.Name = "txtTimeStampTo" - Container1.Gf_textboxcontainer1.Command1.Name = "Command1" - Container1.Gf_textboxcontainer1.Command2.Name = "Command2" - Container1.Gf_textboxcontainer1.Label1.Name = "Label1" - Container1.Gf_textboxcontainer1.Line1.Name = "Line1" - Container1.Gf_textboxcontainer1.Line2.Name = "Line2" - Container1.Gf_textboxcontainer1.Name = "Gf_textboxcontainer1" - Container1.Gf_textboxcontainer1.txt1.Name = "txt1" - Container1.Name = "Container1" - Container1.Textboxcontainer1.Command1.Name = "Command1" - Container1.Textboxcontainer1.Command2.Name = "Command2" - Container1.Textboxcontainer1.Label1.Name = "Label1" - Container1.Textboxcontainer1.Line1.Name = "Line1" - Container1.Textboxcontainer1.Line2.Name = "Line2" - Container1.Textboxcontainer1.Name = "Textboxcontainer1" - Container1.Textboxcontainer1.txt1.Name = "txt1" - Container1.Textboxcontainer2.Command1.Name = "Command1" - Container1.Textboxcontainer2.Command2.Name = "Command2" - Container1.Textboxcontainer2.Label1.Name = "Label1" - Container1.Textboxcontainer2.Line1.Name = "Line1" - Container1.Textboxcontainer2.Line2.Name = "Line2" - Container1.Textboxcontainer2.Name = "Textboxcontainer2" - Container1.Textboxcontainer2.txt1.Name = "txt1" - Container1.Textboxcontainer3.Command1.Name = "Command1" - Container1.Textboxcontainer3.Command2.Name = "Command2" - Container1.Textboxcontainer3.Label1.Name = "Label1" - Container1.Textboxcontainer3.Line1.Name = "Line1" - Container1.Textboxcontainer3.Line2.Name = "Line2" - Container1.Textboxcontainer3.Name = "Textboxcontainer3" - Container1.Textboxcontainer3.txt1.Name = "txt1" - Shape1.Name = "Shape1" - cmdOK.Name = "cmdOK" - Command2.Name = "Command2" - Command3.Name = "Command3" - Check1.Alignment = 0 - Check1.Name = "Check1" - Check2.Alignment = 0 - Check2.Name = "Check2" - Label4.Name = "Label4" - Line1.Name = "Line1" - -ENDDEFINE +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_filter.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="gf_filterform1" Baseclass="form" /> + +* \ No newline at end of file diff --git a/Source/Forms/gofish_filter.scx b/Source/Forms/gofish_filter.scx index 76a0a2f..a6ae975 100644 Binary files a/Source/Forms/gofish_filter.scx and b/Source/Forms/gofish_filter.scx differ diff --git a/Source/Forms/gofish_filterpf.SCT b/Source/Forms/gofish_filterpf.SCT index c355da6..4909e7e 100644 Binary files a/Source/Forms/gofish_filterpf.SCT and b/Source/Forms/gofish_filterpf.SCT differ diff --git a/Source/Forms/gofish_filterpf.dataenvironment.sc2 b/Source/Forms/gofish_filterpf.dataenvironment.sc2 new file mode 100644 index 0000000..f51f2fe --- /dev/null +++ b/Source/Forms/gofish_filterpf.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_filterpf.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gofish_filterpf.gf_filter.sc2 b/Source/Forms/gofish_filterpf.gf_filter.sc2 new file mode 100644 index 0000000..76762e4 --- /dev/null +++ b/Source/Forms/gofish_filterpf.gf_filter.sc2 @@ -0,0 +1,2233 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_filterpf.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS gf_filter AS gf_baseform OF "..\lib\gofishui.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="PageFrame" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page1.containerMatchedLine" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page1.Gf_textboxcontainer1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page1.Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page1.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page1.Gf_filtersinglecheckboxcontainer1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page1.Gf_filtersinglecheckboxcontainer2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page2.containerFilename" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page2.containerFilePath" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page2.containerTimestamp" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page3.containerClassName" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page3.containerMethodName" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page3.Textboxcontainer1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page3.Textboxcontainer2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page4.containerObjectName" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page4.Textboxcontainer3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check21" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check11" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check10" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check18" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check12" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check14" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check17" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check16" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check19" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check20" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check22" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check9" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check23" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check24" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkTXT" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkASP" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.ChkHTML" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkH" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkMNX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkSCX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkVCX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkDBC" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkLBX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkFRX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkPJX" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkPRG" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkSPR" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkMPR" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkini" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkJSP" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkJava" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkXML" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Command1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Command4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cntTextBoxOptions" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cntTextBoxOptions.Check2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cntTextBoxOptions.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cntTextBoxOptions.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Command3" UniqueID="" Timestamp="" /> + + * + *m: applychanges + *m: bind + *m: bindeachpage + *m: buildcheckboxfilter + *m: buildcontainerfilters + *m: buildfilterstring + *m: buildtextboxfilter + *m: clearallfilters + *m: decoratepage + *m: enablecontrol + *m: loadfiltersettings && Loads saved settings from XML file. + *m: refreshpagecaptions + *m: refreshtextboxoptions + *m: savefiltersettings + *p: ccodetypefilter + *p: cfilenamefilter + *p: cfiletypefilter + *p: cfilter + *p: cfilteroptionsclass + *p: cfilteroptionsxmlfile + *p: csearchresults + *p: llreturn + *p: ofilter + * + + * + BorderStyle = 3 + Caption = "GoFish Filter Builder" + ccodetypefilter = + cfilenamefilter = + cfiletypefilter = + cfilter = + cfilteroptionsclass = GF_SearchResultsFilter + cfilteroptionsxmlfile = GF_Filter_Settings.xml + csearchresults = + cuisettingsfile = GF_Filter_PF_Form_Settings.xml + DoCreate = .T. + Height = 332 + Left = 0 + llreturn = .F. + Name = "GF_Filter" + ofilter = .NULL. + ShowTips = .T. + Top = 0 + Visible = .T. + Width = 510 + WindowType = 1 + _memberdata = + + + + + + + + + + + + + + + + + + + + + + + + + + + + * + + ADD OBJECT 'cntTextBoxOptions' AS container WITH ; + Height = 52, ; + Left = 6, ; + Name = "cntTextBoxOptions", ; + Top = 239, ; + Width = 499 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'cntTextBoxOptions.Check1' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + Caption = "Use leading ! (for NOT)", ; + ControlSource = "Thisform.oFilter.FilterNot", ; + Height = 17, ; + Left = 266, ; + Name = "Check1", ; + Top = 26, ; + Width = 144, ; + ZOrderSet = 5 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'cntTextBoxOptions.Check2' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + Caption = "Use wildcards (* and ?)", ; + ControlSource = "Thisform.oFilter.FilterLike", ; + Height = 17, ; + Left = 50, ; + Name = "Check2", ; + Top = 26, ; + Width = 147, ; + ZOrderSet = 6 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'cntTextBoxOptions.Label1' AS label WITH ; + Alignment = 0, ; + AutoSize = .T., ; + Caption = 'Filters are case-insensitive. Enter multiple filters using "|AND|" or "|OR|" as delimiters.', ; + Height = 17, ; + Left = 10, ; + Name = "Label1", ; + TabIndex = 4, ; + Top = 6, ; + Width = 468, ; + ZOrderSet = 7 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Command1' AS commandbutton WITH ; + Anchor = 0, ; + AutoSize = .F., ; + Caption = "Apply", ; + Default = .T., ; + FontSize = 10, ; + Height = 29, ; + Left = 36, ; + Name = "Command1", ; + Top = 296, ; + Width = 65, ; + ZOrderSet = 2 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'Command3' AS commandbutton WITH ; + Anchor = 0, ; + AutoSize = .F., ; + Caption = "\ + + ADD OBJECT 'Command4' AS commandbutton WITH ; + Anchor = 0, ; + AutoSize = .F., ; + Cancel = .T., ; + Caption = "Cancel", ; + FontSize = 9, ; + Height = 29, ; + Left = 412, ; + Name = "Command4", ; + Top = 296, ; + Width = 65, ; + ZOrderSet = 3 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'PageFrame' AS pageframe WITH ; + Anchor = 15, ; + ErasePage = .T., ; + Height = 240, ; + Left = 6, ; + Name = "PageFrame", ; + PageCount = 6, ; + Top = 0, ; + Width = 500, ; + Page1.Caption = "Code", ; + Page1.Name = "Page1", ; + Page1.PageOrder = 1, ; + Page2.Caption = "Files", ; + Page2.Name = "Page2", ; + Page2.PageOrder = 4, ; + Page3.Caption = "Classes", ; + Page3.Name = "Page3", ; + Page3.PageOrder = 2, ; + Page4.Caption = "Names", ; + Page4.Name = "Page4", ; + Page4.PageOrder = 3, ; + Page5.Caption = "Match Types", ; + Page5.Name = "Page5", ; + Page5.PageOrder = 6, ; + Page6.Caption = "File Types", ; + Page6.Name = "Page6", ; + Page6.PageOrder = 5 + *< END OBJECT: BaseClass="pageframe" /> + + ADD OBJECT 'PageFrame.Page1.containerMatchedLine' AS gf_textboxcontainer WITH ; + Anchor = 10, ; + BorderColor = 200,200,200, ; + Height = 77, ; + Left = 11, ; + Name = "containerMatchedLine", ; + TabIndex = 1, ; + Top = 0, ; + Visible = .T., ; + Width = 247, ; + Label1.Caption = "Within Same Statement", ; + Label1.Name = "Label1", ; + Label1.Tag = "Statement", ; + Label1.Width = 206, ; + Command1.Name = "Command1", ; + Command1.Top = 53, ; + Command2.Name = "Command2", ; + Command2.Top = 53, ; + Line1.Name = "Line1", ; + Line1.Width = 206, ; + Line2.Name = "Line2", ; + Line2.Top = 49, ; + Line2.Width = 205, ; + txt1.Height = 23, ; + txt1.Left = 7, ; + txt1.Name = "txt1", ; + txt1.Top = 26, ; + txt1.Width = 230 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page1.Gf_filtersinglecheckboxcontainer1' AS gf_filtersinglecheckboxcontainer WITH ; + Height = 25, ; + Left = 47, ; + Name = "Gf_filtersinglecheckboxcontainer1", ; + Top = 161, ; + Width = 280, ; + chkApplyFilter.Alignment = 0, ; + chkApplyFilter.Caption = "Only show first match in each STATEMENT", ; + chkApplyFilter.ControlSource = "OnlyFirstMatchInStatement", ; + chkApplyFilter.Name = "chkApplyFilter" + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page1.Gf_filtersinglecheckboxcontainer2' AS gf_filtersinglecheckboxcontainer WITH ; + Height = 25, ; + Left = 47, ; + Name = "Gf_filtersinglecheckboxcontainer2", ; + Top = 185, ; + Width = 280, ; + chkApplyFilter.Alignment = 0, ; + chkApplyFilter.Caption = "Only show first match in each PROCEDURE", ; + chkApplyFilter.ControlSource = "OnlyFirstMatchInProcedure", ; + chkApplyFilter.Name = "chkApplyFilter" + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page1.Gf_textboxcontainer1' AS gf_textboxcontainer WITH ; + Anchor = 10, ; + BorderColor = 200,200,200, ; + Height = 77, ; + Left = 11, ; + Name = "Gf_textboxcontainer1", ; + TabIndex = 2, ; + Top = 80, ; + Visible = .T., ; + Width = 247, ; + Label1.Caption = "Within Same Procedure", ; + Label1.Height = 17, ; + Label1.Left = 7, ; + Label1.Name = "Label1", ; + Label1.Tag = "ProcCode", ; + Label1.Top = 4, ; + Label1.Width = 205, ; + Command1.Name = "Command1", ; + Command1.Top = 53, ; + Command2.Name = "Command2", ; + Command2.Top = 53, ; + Line1.Name = "Line1", ; + Line1.Width = 242, ; + Line2.Name = "Line2", ; + Line2.Top = 49, ; + Line2.Width = 241, ; + txt1.Height = 23, ; + txt1.Left = 7, ; + txt1.Name = "txt1", ; + txt1.Top = 26, ; + txt1.Width = 229 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page1.Label1' AS label WITH ; + Anchor = 8, ; + AutoSize = .F., ; + BackStyle = 0, ; + Caption = "Within textboxes:", ; + Height = 47, ; + Left = 269, ; + Name = "Label1", ; + TabIndex = 4, ; + Top = 86, ; + Width = 213, ; + WordWrap = .T., ; + ZOrderSet = 7 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'PageFrame.Page1.Label4' AS label WITH ; + Anchor = 8, ; + AutoSize = .F., ; + BackStyle = 0, ; + Caption = "Within textboxes:", ; + Height = 71, ; + Left = 269, ; + Name = "Label4", ; + TabIndex = 3, ; + Top = 5, ; + Width = 213, ; + WordWrap = .T., ; + ZOrderSet = 7 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'PageFrame.Page2.containerFilename' AS gf_textboxcontainer WITH ; + Anchor = 130, ; + BorderColor = 200,200,200, ; + Height = 77, ; + Left = 9, ; + Name = "containerFilename", ; + TabIndex = 1, ; + Top = 14, ; + Visible = .T., ; + Width = 228, ; + Label1.Caption = "File Name", ; + Label1.Name = "Label1", ; + Label1.Width = 217, ; + Command1.Name = "Command1", ; + Command1.Top = 54, ; + Command2.Name = "Command2", ; + Command2.Top = 54, ; + Line1.Name = "Line1", ; + Line1.Width = 217, ; + Line2.Name = "Line2", ; + Line2.Top = 50, ; + Line2.Width = 216, ; + txt1.Name = "txt1", ; + txt1.Width = 216 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page2.containerFilePath' AS gf_textboxcontainer WITH ; + Anchor = 40, ; + BorderColor = 200,200,200, ; + Height = 77, ; + Left = 251, ; + Name = "containerFilePath", ; + TabIndex = 2, ; + Top = 14, ; + Visible = .T., ; + Width = 228, ; + Label1.Caption = "File Path", ; + Label1.Name = "Label1", ; + Label1.Width = 217, ; + Command1.Left = 10, ; + Command1.Name = "Command1", ; + Command1.Top = 54, ; + Command2.Left = 65, ; + Command2.Name = "Command2", ; + Command2.Top = 54, ; + Line1.Name = "Line1", ; + Line1.Width = 217, ; + Line2.Left = 5, ; + Line2.Name = "Line2", ; + Line2.Top = 51, ; + Line2.Width = 216, ; + txt1.Name = "txt1", ; + txt1.Width = 216 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page2.containerTimestamp' AS gf_timestampcontainer WITH ; + BorderColor = 200,200,200, ; + Height = 77, ; + Left = 124, ; + Name = "containerTimestamp", ; + TabIndex = 3, ; + Top = 110, ; + Visible = .T., ; + Width = 263, ; + Label1.Caption = "TimeStamp", ; + Label1.Left = 138, ; + Label1.Name = "Label1", ; + Label1.Top = -66, ; + Label1.Width = 216, ; + Command1.Left = 160, ; + Command1.Name = "Command1", ; + Command1.Top = -44, ; + Command2.Left = 143, ; + Command2.Name = "Command2", ; + Command2.Top = 6, ; + Command2.Visible = .T., ; + Line1.Left = 6, ; + Line1.Name = "Line1", ; + Line1.Top = 33, ; + Line1.Width = 351, ; + Line2.Left = 5, ; + Line2.Name = "Line2", ; + Line2.Top = 74, ; + Line2.Width = 350, ; + chkTimeStamp.Alignment = 0, ; + chkTimeStamp.Caption = "TimeStamp", ; + chkTimeStamp.ControlSource = "Filter", ; + chkTimeStamp.Height = 17, ; + chkTimeStamp.Left = 48, ; + chkTimeStamp.Name = "chkTimeStamp", ; + chkTimeStamp.Tag = "Filter", ; + chkTimeStamp.Top = 8, ; + chkTimeStamp.Width = 71, ; + Label11.Left = 6, ; + Label11.Name = "Label11", ; + Label11.Top = 48, ; + Label12.Left = 132, ; + Label12.Name = "Label12", ; + Label12.Top = 47, ; + txtTimeStampFrom.ControlSource = "Timestamp_FilterFrom", ; + txtTimeStampFrom.Height = 23, ; + txtTimeStampFrom.Left = 31, ; + txtTimeStampFrom.Name = "txtTimeStampFrom", ; + txtTimeStampFrom.Top = 43, ; + txtTimeStampFrom.Width = 88, ; + txtTimeStampTo.ControlSource = "Timestamp_FilterTo", ; + txtTimeStampTo.Height = 23, ; + txtTimeStampTo.Left = 156, ; + txtTimeStampTo.Name = "txtTimeStampTo", ; + txtTimeStampTo.Top = 43, ; + txtTimeStampTo.Width = 88 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page3.containerClassName' AS gf_textboxcontainer WITH ; + Anchor = 40, ; + BorderColor = 200,200,200, ; + Height = 80, ; + Left = 249, ; + Name = "containerClassName", ; + TabIndex = 4, ; + Tag = "_Class", ; + Top = 110, ; + Visible = .T., ; + Width = 230, ; + Label1.Caption = "Containing Class", ; + Label1.Name = "Label1", ; + Label1.Width = 176, ; + Command1.Name = "Command1", ; + Command1.Top = 55, ; + Command2.Name = "Command2", ; + Command2.Top = 55, ; + Line1.Name = "Line1", ; + Line1.Width = 176, ; + Line2.Name = "Line2", ; + Line2.Top = 51, ; + Line2.Width = 175, ; + txt1.Height = 23, ; + txt1.Left = 7, ; + txt1.Name = "txt1", ; + txt1.Top = 26, ; + txt1.Width = 218 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page3.containerMethodName' AS gf_textboxcontainer WITH ; + Anchor = 130, ; + BorderColor = 200,200,200, ; + Height = 80, ; + Left = 9, ; + Name = "containerMethodName", ; + TabIndex = 1, ; + Top = 14, ; + Visible = .T., ; + Width = 230, ; + Label1.Caption = "Class", ; + Label1.Name = "Label1", ; + Label1.Width = 219, ; + Command1.Name = "Command1", ; + Command1.Top = 56, ; + Command2.Name = "Command2", ; + Command2.Top = 56, ; + Line1.Name = "Line1", ; + Line1.Width = 219, ; + Line2.Name = "Line2", ; + Line2.Top = 52, ; + Line2.Width = 218, ; + txt1.Name = "txt1", ; + txt1.Width = 218 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page3.Textboxcontainer1' AS gf_textboxcontainer WITH ; + Anchor = 40, ; + BorderColor = 200,200,200, ; + Height = 80, ; + Left = 249, ; + Name = "Textboxcontainer1", ; + TabIndex = 2, ; + Top = 14, ; + Visible = .T., ; + Width = 230, ; + Label1.Caption = "Base Class", ; + Label1.Height = 17, ; + Label1.Left = 7, ; + Label1.Name = "Label1", ; + Label1.Top = 4, ; + Label1.Width = 200, ; + Command1.Name = "Command1", ; + Command1.Top = 55, ; + Command2.Name = "Command2", ; + Command2.Top = 55, ; + Line1.Height = 0, ; + Line1.Left = 6, ; + Line1.Name = "Line1", ; + Line1.Top = 20, ; + Line1.Width = 199, ; + Line2.Height = 0, ; + Line2.Left = 5, ; + Line2.Name = "Line2", ; + Line2.Top = 51, ; + Line2.Width = 200, ; + txt1.Height = 23, ; + txt1.Left = 7, ; + txt1.Name = "txt1", ; + txt1.Top = 26, ; + txt1.Width = 218 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page3.Textboxcontainer2' AS gf_textboxcontainer WITH ; + Anchor = 130, ; + BorderColor = 200,200,200, ; + Height = 80, ; + Left = 9, ; + Name = "Textboxcontainer2", ; + TabIndex = 3, ; + Top = 110, ; + Width = 230, ; + Label1.Caption = "Parent Class", ; + Label1.Name = "Label1", ; + Label1.Width = 153, ; + Command1.Name = "Command1", ; + Command1.Top = 56, ; + Command2.Name = "Command2", ; + Command2.Top = 56, ; + Line1.Name = "Line1", ; + Line1.Width = 153, ; + Line2.Name = "Line2", ; + Line2.Top = 52, ; + Line2.Width = 152, ; + txt1.Height = 23, ; + txt1.Left = 7, ; + txt1.Name = "txt1", ; + txt1.Top = 26, ; + txt1.Width = 218 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page4.containerObjectName' AS gf_textboxcontainer WITH ; + Anchor = 10, ; + BorderColor = 200,200,200, ; + Height = 77, ; + Left = 12, ; + Name = "containerObjectName", ; + TabIndex = 1, ; + Top = 14, ; + Visible = .T., ; + Width = 473, ; + Label1.Caption = "Object Name", ; + Label1.Name = "Label1", ; + Label1.Tag = "Name", ; + Label1.Width = 462, ; + Command1.Name = "Command1", ; + Command1.Top = 52, ; + Command2.Name = "Command2", ; + Command2.Top = 52, ; + Line1.Name = "Line1", ; + Line1.Width = 462, ; + Line2.Name = "Line2", ; + Line2.Top = 48, ; + Line2.Width = 461, ; + txt1.Name = "txt1", ; + txt1.Width = 461 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page4.Textboxcontainer3' AS gf_textboxcontainer WITH ; + Anchor = 10, ; + BorderColor = 200,200,200, ; + Height = 77, ; + Left = 12, ; + Name = "Textboxcontainer3", ; + TabIndex = 2, ; + Top = 104, ; + Visible = .T., ; + Width = 473, ; + Label1.Caption = "Method / Property Name", ; + Label1.Name = "Label1", ; + Label1.Tag = "MethodName", ; + Label1.Width = 462, ; + Command1.Name = "Command1", ; + Command1.Top = 53, ; + Command2.Name = "Command2", ; + Command2.Top = 53, ; + Line1.Name = "Line1", ; + Line1.Width = 462, ; + Line2.Name = "Line2", ; + Line2.Top = 49, ; + Line2.Width = 461, ; + txt1.Name = "txt1", ; + txt1.Width = 461 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType' AS gf_filtercheckboxcontainer WITH ; + BorderColor = 200,200,200, ; + Height = 205, ; + Left = 5, ; + Name = "containerMatchType", ; + TabIndex = 2, ; + Top = 2, ; + Visible = .T., ; + Width = 484, ; + Label1.Caption = "MatchType", ; + Label1.Left = 69, ; + Label1.Name = "Label1", ; + Label1.TabIndex = 31, ; + Label1.Top = 4, ; + Label1.Width = 369, ; + Command1.Left = 10, ; + Command1.Name = "Command1", ; + Command1.TabIndex = 29, ; + Command1.Top = 180, ; + Command2.Left = 46, ; + Command2.Name = "Command2", ; + Command2.TabIndex = 30, ; + Command2.Top = 180, ; + Line1.Name = "Line1", ; + Line1.Width = 496, ; + Line2.Height = 6, ; + Line2.Left = 6, ; + Line2.Name = "Line2", ; + Line2.Top = -78, ; + Line2.Width = 496 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check1' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 113, ; + Name = "Check1", ; + TabIndex = 11, ; + Top = 24, ; + Value = .T., ; + Width = 61 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check10' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 390, ; + Name = "Check10", ; + TabIndex = 1, ; + Top = 24, ; + Value = .T., ; + Width = 76 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check11' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 113, ; + Name = "Check11", ; + TabIndex = 2, ; + Top = 78, ; + Value = .T., ; + Width = 79 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check12' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 252, ; + Name = "Check12", ; + TabIndex = 3, ; + Top = 24, ; + Value = .T., ; + Width = 90 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check14' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 8, ; + Name = "Check14", ; + TabIndex = 5, ; + Top = 78, ; + Value = .T., ; + Width = 75 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check16' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 8, ; + Name = "Check16", ; + TabIndex = 6, ; + Top = 96, ; + Value = .T., ; + Width = 70 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check17' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 113, ; + Name = "Check17", ; + TabIndex = 8, ; + Top = 96, ; + Value = .T., ; + Width = 85 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check18' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 113, ; + Name = "Check18", ; + TabIndex = 9, ; + Top = 60, ; + Value = .T., ; + Width = 59 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check19' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 113, ; + Name = "Check19", ; + TabIndex = 13, ; + Top = 42, ; + Value = .T., ; + Width = 66 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check2' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 8, ; + Name = "Check2", ; + TabIndex = 21, ; + Top = 42, ; + Value = .T., ; + Width = 79 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check20' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 113, ; + Name = "Check20", ; + TabIndex = 10, ; + Top = 114, ; + Value = .T., ; + Width = 94 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check21' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 8, ; + Name = "Check21", ; + TabIndex = 14, ; + Top = 60, ; + Value = .T., ; + Width = 83 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check22' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 252, ; + Name = "Check22", ; + TabIndex = 15, ; + Top = 78, ; + Value = .T., ; + Width = 102 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check23' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 390, ; + Name = "Check23", ; + TabIndex = 18, ; + Top = 42, ; + Value = .T., ; + Width = 73 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check24' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 113, ; + Name = "Check24", ; + TabIndex = 19, ; + Top = 150, ; + Value = .T., ; + Width = 86 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check3' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 252, ; + Name = "Check3", ; + TabIndex = 4, ; + Top = 60, ; + Value = .T., ; + Width = 96 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check4' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 252, ; + Name = "Check4", ; + TabIndex = 16, ; + Top = 96, ; + Value = .T., ; + Width = 106 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check5' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 113, ; + Name = "Check5", ; + TabIndex = 12, ; + Top = 132, ; + Value = .T., ; + Width = 113 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check7' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 252, ; + Name = "Check7", ; + TabIndex = 17, ; + Top = 114, ; + Value = .T., ; + Width = 105 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check8' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 252, ; + Name = "Check8", ; + TabIndex = 7, ; + Top = 42, ; + Value = .T., ; + Width = 96 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Check9' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 8, ; + Name = "Check9", ; + TabIndex = 20, ; + Top = 114, ; + Value = .T., ; + Width = 78 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox1' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Code", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 8, ; + Name = "Gf_filtercheckbox1", ; + TabIndex = 22, ; + Top = 24, ; + Value = .T., ; + Width = 43 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox2' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 390, ; + Name = "Gf_filtercheckbox2", ; + TabIndex = 23, ; + Top = 84, ; + Value = .T., ; + Width = 56 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox3' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 390, ; + Name = "Gf_filtercheckbox3", ; + TabIndex = 28, ; + Top = 174, ; + Value = .T., ; + Width = 74 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox4' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 390, ; + Name = "Gf_filtercheckbox4", ; + TabIndex = 26, ; + Top = 102, ; + Value = .T., ; + Width = 61 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox5' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 390, ; + Name = "Gf_filtercheckbox5", ; + TabIndex = 24, ; + Top = 120, ; + Value = .T., ; + Width = 52 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox6' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 390, ; + Name = "Gf_filtercheckbox6", ; + TabIndex = 27, ; + Top = 138, ; + Value = .T., ; + Width = 58 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox7' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 390, ; + Name = "Gf_filtercheckbox7", ; + TabIndex = 25, ; + Top = 156, ; + Value = .T., ; + Width = 67 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page5.containerMatchType.Label2' AS label WITH ; + Caption = "Reports", ; + Height = 15, ; + Left = 390, ; + Name = "Label2", ; + TabIndex = 32, ; + Top = 66, ; + Width = 51 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType' AS gf_filtercheckboxcontainer WITH ; + BorderColor = 200,200,200, ; + Height = 188, ; + Left = 128, ; + Name = "containerFileType", ; + TabIndex = 1, ; + Top = 8, ; + Width = 244, ; + Label1.Caption = "FileType", ; + Label1.Name = "Label1", ; + Label1.TabIndex = 19, ; + Label1.Width = 233, ; + Command1.Name = "Command1", ; + Command1.TabIndex = 20, ; + Command1.Top = 165, ; + Command2.Name = "Command2", ; + Command2.TabIndex = 21, ; + Command2.Top = 165, ; + Line1.Name = "Line1", ; + Line1.Width = 233, ; + Line2.Height = 0, ; + Line2.Left = 5, ; + Line2.Name = "Line2", ; + Line2.Top = 160, ; + Line2.Width = 233 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkASP' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "ASP", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 173, ; + Name = "chkASP", ; + TabIndex = 16, ; + Top = 84, ; + Value = .T., ; + Width = 37 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkDBC' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "DBC", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 29, ; + Name = "chkDBC", ; + TabIndex = 7, ; + Top = 139, ; + Value = .T., ; + Width = 38 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkFRX' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "FRX", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 29, ; + Name = "chkFRX", ; + TabIndex = 3, ; + Top = 65, ; + Value = .T., ; + Width = 37 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkH' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = ".h", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 102, ; + Name = "chkH", ; + TabIndex = 12, ; + Tag = "h", ; + Top = 102, ; + Value = .T., ; + Width = 28 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.ChkHTML' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "HTML", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 173, ; + Name = "ChkHTML", ; + TabIndex = 13, ; + Top = 27, ; + Value = .T., ; + Width = 44 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkini' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "INI", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 102, ; + Name = "chkini", ; + TabIndex = 11, ; + Top = 84, ; + Value = .T., ; + Width = 33 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkJava' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "JAVA", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 173, ; + Name = "chkJava", ; + TabIndex = 17, ; + Top = 103, ; + Value = .T., ; + Width = 43 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkJSP' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "JSP", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 173, ; + Name = "chkJSP", ; + TabIndex = 18, ; + Top = 122, ; + Value = .T., ; + Width = 35 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkLBX' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "LBX", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 29, ; + Name = "chkLBX", ; + TabIndex = 4, ; + Top = 83, ; + Value = .T., ; + Width = 35 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkMNX' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "MNX", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 29, ; + Name = "chkMNX", ; + TabIndex = 5, ; + Top = 101, ; + Value = .T., ; + Width = 39 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkMPR' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "MPR", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 102, ; + Name = "chkMPR", ; + TabIndex = 9, ; + Top = 46, ; + Value = .T., ; + Width = 39 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkPJX' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "PJX", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 29, ; + Name = "chkPJX", ; + TabIndex = 6, ; + Top = 120, ; + Value = .T., ; + Width = 35 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkPRG' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "PRG", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 102, ; + Name = "chkPRG", ; + TabIndex = 8, ; + Top = 27, ; + Value = .T., ; + Width = 38 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkSCX' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "SCX", ; + ControlSource = "", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 29, ; + Name = "chkSCX", ; + TabIndex = 1, ; + Top = 27, ; + Value = .T., ; + Width = 37 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkSPR' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "SPR", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 102, ; + Name = "chkSPR", ; + TabIndex = 10, ; + Top = 65, ; + Value = .T., ; + Width = 37 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkTXT' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "TXT", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 173, ; + Name = "chkTXT", ; + TabIndex = 15, ; + Top = 65, ; + Value = .T., ; + Width = 36 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkVCX' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "VCX", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 29, ; + Name = "chkVCX", ; + TabIndex = 2, ; + Top = 46, ; + Value = .T., ; + Width = 37 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'PageFrame.Page6.containerFileType.chkXML' AS gf_filtercheckbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "XML", ; + FontName = "Tahoma", ; + FontSize = 8, ; + Height = 15, ; + Left = 173, ; + Name = "chkXML", ; + TabIndex = 14, ; + Top = 46, ; + Value = .T., ; + Width = 37 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> + + PROCEDURE applychanges + This.SaveFilterSettings(This.cFilterOptionsXMLFile) + + + ENDPROC + + PROCEDURE bind + Lparameters toContainer + + lcControlSourceRoot = 'Thisform.oFilter.' + + For each control in toContainer.Controls + If PemStatus(control, 'ControlSource', 5) and !Empty(control.ControlSource) + control.ControlSource = lcControlSourceRoot + control.ControlSource + EndIf + EndFor + + ENDPROC + + PROCEDURE bindeachpage + *-- Bind up controls to an empty class instance so form can set up + Local loControl, loPage + For Each m.loPage In This.PageFrame.Objects FoxObject + For Each m.loControl In m.loPage.Controls + If Upper(m.loControl.BaseClass) = 'CONTAINER' + This.Bind(m.loControl) + Endif + Endfor + Endfor + + + ENDPROC + + PROCEDURE buildcheckboxfilter + Lparameters toContainer, tcFilterObjectProperty, tcSeparator + + Local lcCondition, lcExistingString, lcField, lcFilter, lcFilterObjectProperty, lcNewString, lcValue + + lnSelect = Select() + Select (Thisform.oForm.cSearchResultsAlias) + + lcField = Getwordnum(tcFilterObjectProperty, 1, '_') + lcValue = Getwordnum(tcFilterObjectProperty, 2, '_') + + lcFilterObjectProperty = 'Thisform.oFilter.' + tcFilterObjectProperty + lcFilterObjectProperty = Strtran(lcFilterObjectProperty, '<', '') + lcFilterObjectProperty = Strtran(lcFilterObjectProperty, '>', '') + lcFilterObjectProperty = Strtran(lcFilterObjectProperty, ' ', '') + + lcNewString = '' + + If Empty(tcSeparator) + tcSeparator = 'or' + Endif + + lcExistingString = toContainer.cFilter + + If !Empty(lcExistingString) + lcNewString = lcExistingString + ' ' + tcSeparator + ' ' + Endif + + *lcCondition = 'Alltrim(Upper(' + lcField + ')) == [' + Alltrim(Upper(lcValue)) + ']' + + lcCondition = 'Alltrim(' + lcField + ')==[' + Alltrim(lcValue) + ']' + + *-- Determine if passed value is present in column of search resutls. + *-- If not, then disable control since, well, there are none, + Locate For &lcCondition + + If !Found() + This.EnableControl(toContainer, lcValue, .F.) + Else + This.EnableControl(toContainer, lcValue, .T.) + Endif + + + *-- Add this filter to the filter string if the property is selected, and the value exists + Try && Could fail if we matched on the (alternate) Tag value, which is fine. + If Eval(lcFilterObjectProperty)&& And Found() + lcFilter = lcNewString + lcCondition + toContainer.cFilter = lcFilter + Endif + Catch + Endtry + + Select (lnSelect) + + ENDPROC + + PROCEDURE buildcontainerfilters + Lparameters toContainer + + Local lcField, lcFilterObjectProperty, lcValue, loControl + + Do Case + + Case Upper(toContainer.Class) = 'GF_FILTERCHECKBOXCONTAINER' + For Each loControl in toContainer.Controls + + *==== CHECKBOXES ================================================= + If Upper(loControl.baseclass) = 'CHECKBOX' + lcFilterObjectProperty = GetWordNum(loControl.ControlSource, 3, '.') + + If Upper(toContainer.name) <> 'CONTAINERMATCHTYPE' + This.BuildCheckBoxFilter(toContainer, lcFilterObjectProperty) + Endif + + *-- Optionally work with Tag value if ControlSource did not match up with any values in the table + *If (loControl.Enabled = .f. or '<' $ loControl.tag) and !Empty(loControl.Tag) && Tag could hold an alternate match in the column + If !Empty(loControl.Tag) && Tag could hold an alternate match in the column + lcField = GetWordNum(lcFilterObjectProperty, 1, '_') + lcValue = '_' + loControl.tag + This.BuildCheckBoxFilter(toContainer, lcField + lcValue) + Endif + + EndIf + EndFor + + Case Upper(toContainer.Class) = 'GF_TEXTBOXCONTAINER' + loControl = toContainer.txt1 + lcFilterObjectProperty = GetWordNum(loControl.ControlSource, 3, '.') + lcFieldInTable = GetWordNum(lcFilterObjectProperty, 1, '_')&& Need to chop off the '_Filter' part of the ControlSource + lcValue = Alltrim(loControl.Value) + This.BuildTextboxFilter(toContainer, lcFieldInTable, lcValue) + + Case Upper(toContainer.Class) = 'GF_TIMESTAMPCONTAINER' + lcFilter = '' + ldFromDate = Thisform.oFilter.Timestamp_FilterFrom + ldToDate = Thisform.oFilter.Timestamp_FilterTo + + If !Empty(toContainer.chkTimeStamp.value) + lcFromDate = Transform(dtos(ldFromDate), '@R {^####/##/##') + '}' + lcToDate = Transform(dtos(ldToDate), '@R {^####/##/##') + '}' + + Do Case + Case Empty(ldFromDate) and Empty(ldToDate) + *-- Do Nothing + Case Empty(ldFromDate) + lcFilter = 'TimeStamp <= ' + lcToDate + Case Empty(ldToDate) + lcFilter = 'TimeStamp >= ' + lcFromDate + Otherwise + lcFilter = 'TimeStamp >= ' + lcFromDate + ' and TimeStamp <= ' + lcToDate + Endcase + + toContainer.cFilter = lcFilter + + EndIf + + Endcase + + + + + + + + ENDPROC + + PROCEDURE buildfilterstring + Local lcAnd, lcFilter, loControl, loPage + + lcFilter = '' + lcAnd = '' + + For Each m.loPage In This.PageFrame.Objects FoxObject + For Each m.loControl In m.loPage.Controls + If Upper(m.loControl.BaseClass) = 'CONTAINER' + loControl.cFilter = '' + This.BuildContainerFilters(m.loControl) + If Not Empty(m.loControl.cFilter) + lcFilter = m.lcFilter + m.lcAnd + '(' + m.loControl.cFilter + ')' + lcAnd = ' and ' + Endif + Endif + Endfor + Endfor + + Do Case + Case This.oFilter.OnlyFirstMatchInProcedure = .F. and This.oFilter.OnlyFirstMatchInStatement = .F. + + Case Empty(lcFilter) and This.oFilter.OnlyFirstMatchInProcedure = .T. + lcFilter = [(FirstMatchInProcedure or MatchType # 'Code ')] + + Case Empty(lcFilter) and This.oFilter.OnlyFirstMatchInStatement = .T. + lcFilter = [(FirstMatchInStatement or MatchType # 'Code ')] + + Case This.oFilter.OnlyFirstMatchInProcedure = .T. + lcFilter = [(FirstMatchInProcedure or MatchType # 'Code ') and (] + m.lcFilter + ')' + + Otherwise + lcFilter = [(FirstMatchInStatement or MatchType # 'Code ') and (] + m.lcFilter + ')' + + Endcase + + This.cFilter = m.lcFilter + + ENDPROC + + PROCEDURE buildtextboxfilter + Lparameters toContainer, tcField, tcValue + + #Define VISIBLE_AND '|and|' + #Define VISIBLE_OR '|or|' + + #Define AND_DELIMITER Chr[255] + #Define OR_DELIMITER Chr[254] + + Local laValues[1], lcField, lcFilter, lcNewFilter, lcSearchField, lcSearchValue, lcText, lcValue + Local llAnd, llLike, llNextAnd, llNot, lnCount, lnI + + lcValue = Alltrim(Upper(m.tcValue)) + lcValue = Strtran(m.lcValue, VISIBLE_AND, AND_DELIMITER, 1, 100, 1) + lcValue = Strtran(m.lcValue, VISIBLE_OR, OR_DELIMITER, 1, 100, 1) + lcValue = Strtran(m.lcValue, '|', OR_DELIMITER, 1, 100, 1) + lnCount = Alines(laValues, m.lcValue, 16, OR_DELIMITER, AND_DELIMITER) + + lcNewFilter = '' + For lnI = 1 To m.lnCount + lcSearchValue = m.laValues[m.lnI] + Do Case + Case AND_DELIMITER = Right(m.lcSearchValue, 1) + llNextAnd = .T. + lcSearchValue = Left(m.lcSearchValue, Len(m.lcSearchValue) - 1) + Case OR_DELIMITER = Right(m.lcSearchValue, 1) + llNextAnd = .F. + lcSearchValue = Left(m.lcSearchValue, Len(m.lcSearchValue) - 1) + Otherwise + llNextAnd = .T. + Endcase + + lcSearchValue = Upper(m.lcSearchValue) + + If Not Empty(m.lcSearchValue) + + If Left(m.lcSearchValue, 1) = '!' And Thisform.oFilter.FilterNot + lcSearchValue = Substr(m.lcSearchValue, 2) + llNot = .T. + Endif + + * ================================================================================ + * ================================================================================ + + lcSearchField = m.tcField + * if spaces in search value, map Tabs, CRs, and LFs to spaces in the search field + If ' ' $ m.lcSearchValue + lcSearchField = 'Chrtran(' + m.lcSearchField + ', chr[9] + chr[10] + chr[13], " ")' + Endif + + * 'FilterLike' is misnamed -- if actually means wild cards + If Thisform.oFilter.FilterLike and '*' $ lcSearchValue or '?' $ lcSearchValue + lcText = ["*] + Strtran(m.lcSearchValue, '"', '" + ["] + "') + [*"] + lcFilter = Textmerge('Like(Upper(<>), Upper(<>))') + Else + lcText = ["] + Strtran(m.lcSearchValue, '"', '" + ["] + "') + ["] + lcFilter = Textmerge('Atc(<>, <>) > 0') + EndIf + + * ================================================================================ + * ================================================================================ + + *!* ******** JRN Replaced 2024-01-29 ******** + *!* lcField = m.tcField + *!* If Thisform.oFilter.FilterLike + *!* If Thisform.oFilter.FilterExactMatch + *!* lcField = 'Alltrim(' + m.tcField + ', chr[9], chr[10], chr[13], " ")' + *!* Else + *!* lcSearchValue = '*' + m.lcSearchValue + '*' + *!* Endif + *!* llLike = .T. + *!* Endif + + *!* lcText = ["] + Strtran(m.lcSearchValue, '"', '" + ["] + "') + ["] + + *!* If ' ' $ m.lcSearchValue + *!* lcSearchField = 'Upper(Chrtran(' + m.lcField + ', chr[9] + chr[10] + chr[13], " "))' + *!* Else + *!* lcSearchField = 'Upper(' + m.lcField + ')' + *!* Endif + + *!* Do Case + *!* Case m.llLike = .T. + *!* lcFilter = 'Like(' + m.lcText + ', ' + m.lcSearchField + ')' + *!* Case Thisform.oFilter.FilterExactMatch + *!* lcFilter = m.lcSearchField + ' = ' + m.lcText + *!* Otherwise + *!* lcFilter = m.lcText + ' $ ' + m.lcSearchField + *!* Endcase + + If m.llNot + lcFilter = '!(' + m.lcFilter + ')' + Endif + + If Empty(m.lcNewFilter) + lcNewFilter = m.lcFilter + Else + lcNewFilter = m.lcNewFilter + Iif(m.llAnd, ' and ', ' or ') + m.lcFilter + Endif + llAnd = m.llNextAnd + + Else + lcFilter = '' + Endif + + Endfor + + If Empty(m.lcNewFilter) + toContainer.cFilter = m.lcNewFilter + Else + toContainer.cFilter = '(' + m.lcNewFilter + ')' + Endif + + ENDPROC + + PROCEDURE clearallfilters + Local loControl, loPage + For Each m.loPage In This.PageFrame.Objects FoxObject + For Each m.loControl In m.loPage.Controls + If Upper(m.loControl.BaseClass) = 'CONTAINER' + loControl.Clear() + Endif + Endfor + Endfor + + Thisform.RefreshPageCaptions() + + ENDPROC + + PROCEDURE decoratepage + Lparameters loPage, tlDecorated + + Local llDecorated, loControl + + If Pcount() = 2 + llDecorated = m.tlDecorated + Else + llDecorated = .F. + For Each m.loControl In m.loPage.Controls + If Upper(m.loControl.BaseClass) = 'CONTAINER' + llDecorated = m.llDecorated Or m.loControl.lDecorated + Endif + Endfor + Endif + + With m.loPage + If m.llDecorated + .ForeColor = Rgb(255, 0, 0) + .FontBold = .T. + Else + .ForeColor = Rgb(0, 0, 0) + .FontBold = .F. + Endif + Endwith + ENDPROC + + PROCEDURE Destroy + DoDefault() + + This.BuildFilterString() + + This.oFilter = .null. + + + ENDPROC + + PROCEDURE enablecontrol + Lparameters toContainer, tcCaption, tlEnabled + + *-- Looks for a Checkbox within the passed Container, based on the the Caption. + *-- If found, sets Enabled status to tlEnabed. + + Local lcContainer, loControl + + For each loControl in toContainer.Controls + If Upper(loControl.baseclass) = 'CHECKBOX' + lcTag = Alltrim(Upper(loControl.Tag)) + lcCaption = Alltrim(Upper(Strtran(loControl.caption, '.', ''))) && To handle .h caption on FileType container + tcCaption = Alltrim(Upper(tcCaption)) + + If tcCaption = lcCaption or (lcTag = tcCaption and !Empty(lcTag)) + *loControl.Enabled = tlEnabled + + If tlEnabled = .t. + loControl.Forecolor = Rgb(0,0,0) + *loControl.FontBold = .t. + Else + loControl.Forecolor = Rgb(180,180,180) + *loControl.FontBold = .f. + Endif + + EndIf + + If !loControl.Enabled + *loControl.Value = 0 + EndIf + + EndIf + EndFor + + + + + + + + ENDPROC + + PROCEDURE Init + Lparameters toForm, toFilter, tnStartPage, tlRemoveCurrentFilter + + Local lnResponse + + This.MaxHeight = This.Height + This.MinHeight = This.Height + * This.MaxWidth = This.Width + This.MinWidth = This.Width + + DoDefault(m.toForm) + + *SF 20221123 -> local storage + This.cFilterOptionsXMLFile = This.cCR_StoreLocal + This.cFilterOptionsXMLFile + */SF 20221123 -> local storage + + If Vartype(m.toFilter) = 'O' + *-- oFilter should already loaded up with values. + Thisform.oFilter = m.toFilter + Else + This.oFilter = Createobject(This.cFilterOptionsClass) + This.oFilter.LoadFromFile(This.cFilterOptionsXMLFile) + *Thisform.LoadFilterSettings(this.cFilterOptionsXMLFile) + Endif + + *-- XML file stores DateTime, so need to convert to just Date + With Thisform.oFilter + If Vartype(.Timestamp_FilterFrom) = 'T' + .Timestamp_FilterFrom = Ttod(.Timestamp_FilterFrom) + Endif + If Vartype(.Timestamp_FilterTo) = 'T' + .Timestamp_FilterTo = Ttod(.Timestamp_FilterTo) + Endif + Endwith + + Thisform.BindEachPage() + Thisform.RefreshPageCaptions() + + Thisform.BuildFilterString() && Call this to handle disabling of checkboxes + + Do Case + Case Empty(This.cFilter) + + Case Evl(m.tlRemoveCurrentFilter, '') == 'No' + + Case Evl(m.tlRemoveCurrentFilter, '') == 'Yes' + Thisform.ClearAllFilters() + Otherwise + lnResponse = Messagebox('Remove current filters?', 4 + 32) + If m.lnResponse = 6 + Thisform.ClearAllFilters() + Endif + Endcase + + Thisform.PageFrame.ActivePage = Evl(m.tnStartPage, 1) + + Thisform.Refresh() + + + ENDPROC + + PROCEDURE loadfiltersettings && Loads saved settings from XML file. + Lparameters tcFile + + Local loMy as 'My' OF 'My.vcx' + Local laProperties[1], lcProperty + + If !File(tcFile) + Return + EndIf + + loMy = Newobject('My', 'My.vcx') + AMembers(laProperties, This.oFilter, 0, 'U') + loMy.Settings.Load(tcFile) + + With loMy.Settings + + For x = 1 to Alen(laProperties) + lcProperty = laProperties[x] + Try + Store Evaluate('.' + lcProperty) to ('This.oFilter.' + lcProperty) + Catch + EndTry + Endfor + + Endwith + + + + ENDPROC + + PROCEDURE QueryUnload + thisform.llReturn = .f. + ENDPROC + + PROCEDURE refreshpagecaptions + Local llDecorated, loControl, loPage + For Each m.loPage In This.PageFrame.Objects FoxObject + llDecorated = .F. + For Each m.loControl In m.loPage.Controls + If Upper(m.loControl.BaseClass) = 'CONTAINER' + llDecorated = m.llDecorated Or m.loControl.ShouldBeDecorated() + Endif + Endfor + This.DecoratePage(m.loPage, m.llDecorated) + Endfor + + + ENDPROC + + PROCEDURE refreshtextboxoptions + Lparameters llVisible + this.cntTextBoxOptions.Visible = llVisible + ENDPROC + + PROCEDURE savefiltersettings + Lparameters tcFile + + Local loMy as 'My' OF 'My.vcx' + Local laProperties[1], lcProperty + + loMy = Newobject('My', 'My.vcx') + + AMembers(laProperties, This.oFilter, 0, 'U') + + With loMy.Settings + + For x = 1 to Alen(laProperties) + lcProperty = laProperties[x] + If !lcProperty = '_MEMBERDATA' + .Add(lcProperty, Evaluate('This.oFilter.' + lcProperty)) + EndIf + Endfor + + .Save(tcFile) + + Endwith + + ENDPROC + + PROCEDURE Unload + If Thisform.llReturn = .t. + Return Thisform.cFilter + Else + Return .null. + Endif + + + ENDPROC + + PROCEDURE Command1.Click + Thisform.llReturn = .t. + + ThisForm.ApplyChanges() + + Thisform.Release() + + + ENDPROC + + PROCEDURE Command3.Click + ThisForm.ClearAllFilters() + + ENDPROC + + PROCEDURE Command4.Click + Thisform.Release() + + + ENDPROC + + PROCEDURE PageFrame.Page1.Activate + DoDefault() + This.Refresh() + ThisForm.RefreshTextBoxOptions(.t.) + + + ENDPROC + + PROCEDURE PageFrame.Page1.Gf_filtersinglecheckboxcontainer1.chkApplyFilter.Valid + This.Parent.Refresh() + ENDPROC + + PROCEDURE PageFrame.Page1.Gf_filtersinglecheckboxcontainer2.chkApplyFilter.Valid + This.Parent.Refresh() + ENDPROC + + PROCEDURE PageFrame.Page1.Label1.Init + Text To This.Caption Noshow Textmerge + Finds matches to the entered text within the same PROCEDURE as the original match. + Endtext + ENDPROC + + PROCEDURE PageFrame.Page1.Label4.Init + Text To This.Caption Noshow Textmerge + Finds matches to the entered text within the same STATEMENT (including continuation lines) as the original match. + Endtext + ENDPROC + + PROCEDURE PageFrame.Page2.Activate + DoDefault() + This.Refresh() + ThisForm.RefreshTextBoxOptions(.t.) + + ENDPROC + + PROCEDURE PageFrame.Page3.Activate + DoDefault() + This.Refresh() + ThisForm.RefreshTextBoxOptions(.t.) + + ENDPROC + + PROCEDURE PageFrame.Page4.Activate + DoDefault() + This.Refresh() + ThisForm.RefreshTextBoxOptions(.t.) + + ENDPROC + + PROCEDURE PageFrame.Page5.Activate + DoDefault() + This.Refresh() + ThisForm.RefreshTextBoxOptions(.F.) + + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check1.Init + This.Caption = MATCHTYPE_NAME + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check10.Init + This.Caption = MATCHTYPE_FILENAME + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check11.Init + This.Caption = MATCHTYPE_CLASS_DEF + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check12.Init + This.Caption = MATCHTYPE_METHOD_DEF + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check16.Init + This.Caption = MATCHTYPE_METHOD + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check17.Init + This.Caption = MATCHTYPE_BASECLASS + + + + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check18.Init + This.Caption = MATCHTYPE_CLASS + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check2.Init + This.Caption = MATCHTYPE_COMMENT + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check20.Init + This.Caption = MATCHTYPE_PARENTCLASS + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check22.Init + This.Caption = MATCHTYPE_PROPERTY_DESC + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check23.Init + This.Caption = MATCHTYPE_FILEDATE + + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check24.Init + This.Caption = MATCHTYPE_TIMESTAMP + + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check3.Init + This.Caption = MATCHTYPE_PROPERTY_DEF + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check4.Init + This.Caption = MATCHTYPE_PROPERTY_NAME + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check5.Init + This.Caption = MATCHTYPE_CONTAINING_CLASS + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check7.Init + This.Caption = MATCHTYPE_PROPERTY_VALUE + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check8.Init + This.Caption = MATCHTYPE_METHOD_DESC + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Check9.Init + This.Caption = MATCHTYPE_CONSTANT + + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox1.Init + This.Caption = MATCHTYPE_CODE + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox2.Init + This.Caption = MATCHTYPE_FRX_EXPR + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox3.Init + This.Caption = MATCHTYPE_FRX_SUPEXPR + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox4.Init + This.Caption = MATCHTYPE_FRX_NAME + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox5.Init + This.Caption = MATCHTYPE_FRX_TAG + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox6.Init + This.Caption = MATCHTYPE_FRX_TAG2 + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox7.Init + This.Caption = MATCHTYPE_FRX_PICTURE + ENDPROC + + PROCEDURE PageFrame.Page5.containerMatchType.Init + + DoDefault() + + For Each loControl in This.Controls + If Upper(loControl.baseclass) = 'CHECKBOX' + loControl.Tag = loControl.Caption + Endif + EndFor + + + ENDPROC + + PROCEDURE PageFrame.Page6.Activate + DoDefault() + This.Refresh() + ThisForm.RefreshTextBoxOptions(.F.) + + ENDPROC + +ENDDEFINE diff --git a/Source/Forms/gofish_filterpf.sc2 b/Source/Forms/gofish_filterpf.sc2 index b20ae1f..4f3419c 100644 --- a/Source/Forms/gofish_filterpf.sc2 +++ b/Source/Forms/gofish_filterpf.sc2 @@ -1,2277 +1,12 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_filterpf.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -#INCLUDE "..\lib\gofish.h" - -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS gf_filter AS gf_baseform OF "..\lib\gofishui.vcx" - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="PageFrame" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page1.containerMatchedLine" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page1.Gf_textboxcontainer1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page1.Label4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page1.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page1.Gf_filtersinglecheckboxcontainer1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page1.Gf_filtersinglecheckboxcontainer2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page2.containerFilename" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page2.containerFilePath" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page2.containerTimestamp" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page3.containerClassName" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page3.containerMethodName" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page3.Textboxcontainer1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page3.Textboxcontainer2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page4.containerObjectName" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page4.Textboxcontainer3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check21" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check11" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check10" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check18" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check12" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check14" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check17" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check16" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check19" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check20" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check22" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check7" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check8" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check9" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check23" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Check24" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox6" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page5.containerMatchType.Gf_filtercheckbox7" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkTXT" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkASP" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.ChkHTML" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkH" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkMNX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkSCX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkVCX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkDBC" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkLBX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkFRX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkPJX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkPRG" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkSPR" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkMPR" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkini" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkJSP" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkJava" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="PageFrame.Page6.containerFileType.chkXML" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Command1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Command4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cntTextBoxOptions" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cntTextBoxOptions.Check2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cntTextBoxOptions.Check1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cntTextBoxOptions.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cntTextBoxOptions.chkFilterExactMatch" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Command3" UniqueID="" Timestamp="" /> - - * - *m: applychanges - *m: bind - *m: bindeachpage - *m: buildcheckboxfilter - *m: buildcontainerfilters - *m: buildfilterstring - *m: buildtextboxfilter - *m: clearallfilters - *m: decoratepage - *m: enablecontrol - *m: loadfiltersettings && Loads saved settings from XML file. - *m: refreshpagecaptions - *m: refreshtextboxoptions - *m: savefiltersettings - *p: ccodetypefilter - *p: cfilenamefilter - *p: cfiletypefilter - *p: cfilter - *p: cfilteroptionsclass - *p: cfilteroptionsxmlfile - *p: csearchresults - *p: llreturn - *p: ofilter - * - - BorderStyle = 3 - Caption = "GoFish Filter Builder" - ccodetypefilter = - cfilenamefilter = - cfiletypefilter = - cfilter = - cfilteroptionsclass = GF_SearchResultsFilter - cfilteroptionsxmlfile = (Home(7) + 'GF_Filter_Settings.xml') - csearchresults = - DoCreate = .T. - Height = 332 - Left = 0 - llreturn = .F. - Name = "GF_Filter" - ofilter = .NULL. - ShowTips = .T. - Top = 0 - Visible = .T. - Width = 510 - WindowType = 1 - _memberdata = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ADD OBJECT 'cntTextBoxOptions' AS container WITH ; - Height = 52, ; - Left = 6, ; - Name = "cntTextBoxOptions", ; - Top = 239, ; - Width = 499 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'cntTextBoxOptions.Check1' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - Caption = "Use leading ! (for NOT)", ; - ControlSource = "Thisform.oFilter.FilterNot", ; - Height = 17, ; - Left = 321, ; - Name = "Check1", ; - Top = 26, ; - Width = 144, ; - ZOrderSet = 5 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'cntTextBoxOptions.Check2' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - Caption = "Use wildcards (* and ?)", ; - ControlSource = "Thisform.oFilter.FilterLike", ; - Height = 17, ; - Left = 146, ; - Name = "Check2", ; - Top = 26, ; - Width = 147, ; - ZOrderSet = 6 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'cntTextBoxOptions.chkFilterExactMatch' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - Caption = "Match anywhere", ; - ControlSource = "", ; - Height = 17, ; - Left = 12, ; - Name = "chkFilterExactMatch", ; - ToolTipText = "If not selected, only exact matches are found, although you can over-ride this by selecting to use wildcards.", ; - Top = 26, ; - Width = 106, ; - ZOrderSet = 6 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'cntTextBoxOptions.Label1' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - Caption = 'Filters are case-insensitive. Enter multiple filters using "|AND|" or "|OR|" as delimiters.', ; - Height = 17, ; - Left = 10, ; - Name = "Label1", ; - TabIndex = 4, ; - Top = 6, ; - Width = 468, ; - ZOrderSet = 7 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'Command1' AS commandbutton WITH ; - Anchor = 0, ; - AutoSize = .F., ; - Caption = "Apply", ; - Default = .T., ; - FontSize = 10, ; - Height = 29, ; - Left = 36, ; - Name = "Command1", ; - Top = 296, ; - Width = 65, ; - ZOrderSet = 2 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'Command3' AS commandbutton WITH ; - Anchor = 0, ; - AutoSize = .F., ; - Caption = "\ - - ADD OBJECT 'Command4' AS commandbutton WITH ; - Anchor = 0, ; - AutoSize = .F., ; - Cancel = .T., ; - Caption = "Cancel", ; - FontSize = 9, ; - Height = 29, ; - Left = 412, ; - Name = "Command4", ; - Top = 296, ; - Width = 65, ; - ZOrderSet = 3 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'PageFrame' AS pageframe WITH ; - Anchor = 15, ; - ErasePage = .T., ; - Height = 240, ; - Left = 6, ; - Name = "PageFrame", ; - PageCount = 6, ; - Top = 0, ; - Width = 500, ; - Page1.Caption = "Code", ; - Page1.Name = "Page1", ; - Page1.PageOrder = 1, ; - Page2.Caption = "Files", ; - Page2.Name = "Page2", ; - Page2.PageOrder = 4, ; - Page3.Caption = "Classes", ; - Page3.Name = "Page3", ; - Page3.PageOrder = 2, ; - Page4.Caption = "Names", ; - Page4.Name = "Page4", ; - Page4.PageOrder = 3, ; - Page5.Caption = "Match Types", ; - Page5.Name = "Page5", ; - Page5.PageOrder = 6, ; - Page6.Caption = "File Types", ; - Page6.Name = "Page6", ; - Page6.PageOrder = 5 - *< END OBJECT: BaseClass="pageframe" /> - - ADD OBJECT 'PageFrame.Page1.containerMatchedLine' AS gf_textboxcontainer WITH ; - Anchor = 10, ; - BorderColor = 200,200,200, ; - Height = 77, ; - Left = 11, ; - Name = "containerMatchedLine", ; - TabIndex = 1, ; - Top = 0, ; - Visible = .T., ; - Width = 247, ; - Label1.Caption = "Within Same Statement", ; - Label1.Name = "Label1", ; - Label1.Tag = "Statement", ; - Label1.Width = 206, ; - Command1.Name = "Command1", ; - Command1.Top = 53, ; - Command2.Name = "Command2", ; - Command2.Top = 53, ; - Line1.Name = "Line1", ; - Line1.Width = 206, ; - Line2.Name = "Line2", ; - Line2.Top = 49, ; - Line2.Width = 205, ; - txt1.Height = 23, ; - txt1.Left = 7, ; - txt1.Name = "txt1", ; - txt1.Top = 26, ; - txt1.Width = 230 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page1.Gf_filtersinglecheckboxcontainer1' AS gf_filtersinglecheckboxcontainer WITH ; - Height = 25, ; - Left = 47, ; - Name = "Gf_filtersinglecheckboxcontainer1", ; - Top = 161, ; - Width = 280, ; - chkApplyFilter.Alignment = 0, ; - chkApplyFilter.Caption = "Only show first match in each STATEMENT", ; - chkApplyFilter.ControlSource = "OnlyFirstMatchInStatement", ; - chkApplyFilter.Name = "chkApplyFilter" - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page1.Gf_filtersinglecheckboxcontainer2' AS gf_filtersinglecheckboxcontainer WITH ; - Height = 25, ; - Left = 47, ; - Name = "Gf_filtersinglecheckboxcontainer2", ; - Top = 185, ; - Width = 280, ; - chkApplyFilter.Alignment = 0, ; - chkApplyFilter.Caption = "Only show first match in each PROCEDURE", ; - chkApplyFilter.ControlSource = "OnlyFirstMatchInProcedure", ; - chkApplyFilter.Name = "chkApplyFilter" - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page1.Gf_textboxcontainer1' AS gf_textboxcontainer WITH ; - Anchor = 10, ; - BorderColor = 200,200,200, ; - Height = 77, ; - Left = 11, ; - Name = "Gf_textboxcontainer1", ; - TabIndex = 2, ; - Top = 80, ; - Visible = .T., ; - Width = 247, ; - Label1.Caption = "Within Same Procedure", ; - Label1.Height = 17, ; - Label1.Left = 7, ; - Label1.Name = "Label1", ; - Label1.Tag = "ProcCode", ; - Label1.Top = 4, ; - Label1.Width = 205, ; - Command1.Name = "Command1", ; - Command1.Top = 53, ; - Command2.Name = "Command2", ; - Command2.Top = 53, ; - Line1.Name = "Line1", ; - Line1.Width = 242, ; - Line2.Name = "Line2", ; - Line2.Top = 49, ; - Line2.Width = 241, ; - txt1.Height = 23, ; - txt1.Left = 7, ; - txt1.Name = "txt1", ; - txt1.Top = 26, ; - txt1.Width = 229 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page1.Label1' AS label WITH ; - Anchor = 8, ; - AutoSize = .F., ; - BackStyle = 0, ; - Caption = "Within textboxes:", ; - Height = 47, ; - Left = 269, ; - Name = "Label1", ; - TabIndex = 4, ; - Top = 86, ; - Width = 213, ; - WordWrap = .T., ; - ZOrderSet = 7 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'PageFrame.Page1.Label4' AS label WITH ; - Anchor = 8, ; - AutoSize = .F., ; - BackStyle = 0, ; - Caption = "Within textboxes:", ; - Height = 71, ; - Left = 269, ; - Name = "Label4", ; - TabIndex = 3, ; - Top = 5, ; - Width = 213, ; - WordWrap = .T., ; - ZOrderSet = 7 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'PageFrame.Page2.containerFilename' AS gf_textboxcontainer WITH ; - Anchor = 130, ; - BorderColor = 200,200,200, ; - Height = 77, ; - Left = 9, ; - Name = "containerFilename", ; - TabIndex = 1, ; - Top = 14, ; - Visible = .T., ; - Width = 228, ; - Label1.Caption = "File Name", ; - Label1.Name = "Label1", ; - Label1.Width = 217, ; - Command1.Name = "Command1", ; - Command1.Top = 54, ; - Command2.Name = "Command2", ; - Command2.Top = 54, ; - Line1.Name = "Line1", ; - Line1.Width = 217, ; - Line2.Name = "Line2", ; - Line2.Top = 50, ; - Line2.Width = 216, ; - txt1.Name = "txt1", ; - txt1.Width = 216 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page2.containerFilePath' AS gf_textboxcontainer WITH ; - Anchor = 40, ; - BorderColor = 200,200,200, ; - Height = 77, ; - Left = 251, ; - Name = "containerFilePath", ; - TabIndex = 2, ; - Top = 14, ; - Visible = .T., ; - Width = 228, ; - Label1.Caption = "File Path", ; - Label1.Name = "Label1", ; - Label1.Width = 217, ; - Command1.Left = 10, ; - Command1.Name = "Command1", ; - Command1.Top = 54, ; - Command2.Left = 65, ; - Command2.Name = "Command2", ; - Command2.Top = 54, ; - Line1.Name = "Line1", ; - Line1.Width = 217, ; - Line2.Left = 5, ; - Line2.Name = "Line2", ; - Line2.Top = 51, ; - Line2.Width = 216, ; - txt1.Name = "txt1", ; - txt1.Width = 216 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page2.containerTimestamp' AS gf_timestampcontainer WITH ; - BorderColor = 200,200,200, ; - Height = 77, ; - Left = 124, ; - Name = "containerTimestamp", ; - TabIndex = 3, ; - Top = 110, ; - Visible = .T., ; - Width = 263, ; - Label1.Caption = "TimeStamp", ; - Label1.Left = 138, ; - Label1.Name = "Label1", ; - Label1.Top = -66, ; - Label1.Width = 216, ; - Command1.Left = 160, ; - Command1.Name = "Command1", ; - Command1.Top = -44, ; - Command2.Left = 143, ; - Command2.Name = "Command2", ; - Command2.Top = 6, ; - Command2.Visible = .T., ; - Line1.Left = 6, ; - Line1.Name = "Line1", ; - Line1.Top = 22, ; - Line1.Width = 351, ; - Line2.Left = 5, ; - Line2.Name = "Line2", ; - Line2.Top = 74, ; - Line2.Width = 350, ; - chkTimeStamp.Alignment = 0, ; - chkTimeStamp.Caption = "TimeStamp", ; - chkTimeStamp.ControlSource = "Filter", ; - chkTimeStamp.Height = 17, ; - chkTimeStamp.Left = 48, ; - chkTimeStamp.Name = "chkTimeStamp", ; - chkTimeStamp.Tag = "Filter", ; - chkTimeStamp.Top = 8, ; - chkTimeStamp.Width = 71, ; - Label11.Left = 6, ; - Label11.Name = "Label11", ; - Label11.Top = 41, ; - Label12.Left = 132, ; - Label12.Name = "Label12", ; - Label12.Top = 40, ; - txtTimeStampFrom.ControlSource = "Timestamp_FilterFrom", ; - txtTimeStampFrom.Height = 23, ; - txtTimeStampFrom.Left = 31, ; - txtTimeStampFrom.Name = "txtTimeStampFrom", ; - txtTimeStampFrom.Top = 36, ; - txtTimeStampFrom.Width = 88, ; - txtTimeStampTo.ControlSource = "Timestamp_FilterTo", ; - txtTimeStampTo.Height = 23, ; - txtTimeStampTo.Left = 156, ; - txtTimeStampTo.Name = "txtTimeStampTo", ; - txtTimeStampTo.Top = 36, ; - txtTimeStampTo.Width = 88 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page3.containerClassName' AS gf_textboxcontainer WITH ; - Anchor = 40, ; - BorderColor = 200,200,200, ; - Height = 80, ; - Left = 249, ; - Name = "containerClassName", ; - TabIndex = 4, ; - Tag = "_Class", ; - Top = 110, ; - Visible = .T., ; - Width = 230, ; - Label1.Caption = "Containing Class", ; - Label1.Name = "Label1", ; - Label1.Width = 176, ; - Command1.Name = "Command1", ; - Command1.Top = 55, ; - Command2.Name = "Command2", ; - Command2.Top = 55, ; - Line1.Name = "Line1", ; - Line1.Width = 176, ; - Line2.Name = "Line2", ; - Line2.Top = 51, ; - Line2.Width = 175, ; - txt1.Height = 23, ; - txt1.Left = 7, ; - txt1.Name = "txt1", ; - txt1.Top = 26, ; - txt1.Width = 218 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page3.containerMethodName' AS gf_textboxcontainer WITH ; - Anchor = 130, ; - BorderColor = 200,200,200, ; - Height = 80, ; - Left = 9, ; - Name = "containerMethodName", ; - TabIndex = 1, ; - Top = 14, ; - Visible = .T., ; - Width = 230, ; - Label1.Caption = "Class", ; - Label1.Name = "Label1", ; - Label1.Width = 219, ; - Command1.Name = "Command1", ; - Command1.Top = 56, ; - Command2.Name = "Command2", ; - Command2.Top = 56, ; - Line1.Name = "Line1", ; - Line1.Width = 219, ; - Line2.Name = "Line2", ; - Line2.Top = 52, ; - Line2.Width = 218, ; - txt1.Name = "txt1", ; - txt1.Width = 218 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page3.Textboxcontainer1' AS gf_textboxcontainer WITH ; - Anchor = 40, ; - BorderColor = 200,200,200, ; - Height = 80, ; - Left = 249, ; - Name = "Textboxcontainer1", ; - TabIndex = 2, ; - Top = 14, ; - Visible = .T., ; - Width = 230, ; - Label1.Caption = "Base Class", ; - Label1.Height = 17, ; - Label1.Left = 7, ; - Label1.Name = "Label1", ; - Label1.Top = 4, ; - Label1.Width = 200, ; - Command1.Name = "Command1", ; - Command1.Top = 55, ; - Command2.Name = "Command2", ; - Command2.Top = 55, ; - Line1.Height = 0, ; - Line1.Left = 6, ; - Line1.Name = "Line1", ; - Line1.Top = 20, ; - Line1.Width = 199, ; - Line2.Height = 0, ; - Line2.Left = 5, ; - Line2.Name = "Line2", ; - Line2.Top = 51, ; - Line2.Width = 200, ; - txt1.Height = 23, ; - txt1.Left = 7, ; - txt1.Name = "txt1", ; - txt1.Top = 26, ; - txt1.Width = 218 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page3.Textboxcontainer2' AS gf_textboxcontainer WITH ; - Anchor = 130, ; - BorderColor = 200,200,200, ; - Height = 80, ; - Left = 9, ; - Name = "Textboxcontainer2", ; - TabIndex = 3, ; - Top = 110, ; - Width = 230, ; - Label1.Caption = "Parent Class", ; - Label1.Name = "Label1", ; - Label1.Width = 153, ; - Command1.Name = "Command1", ; - Command1.Top = 56, ; - Command2.Name = "Command2", ; - Command2.Top = 56, ; - Line1.Name = "Line1", ; - Line1.Width = 153, ; - Line2.Name = "Line2", ; - Line2.Top = 52, ; - Line2.Width = 152, ; - txt1.Height = 23, ; - txt1.Left = 7, ; - txt1.Name = "txt1", ; - txt1.Top = 26, ; - txt1.Width = 218 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page4.containerObjectName' AS gf_textboxcontainer WITH ; - Anchor = 10, ; - BorderColor = 200,200,200, ; - Height = 77, ; - Left = 12, ; - Name = "containerObjectName", ; - TabIndex = 1, ; - Top = 14, ; - Visible = .T., ; - Width = 473, ; - Label1.Caption = "Object/Property Name", ; - Label1.Name = "Label1", ; - Label1.Tag = "Name", ; - Label1.Width = 462, ; - Command1.Name = "Command1", ; - Command1.Top = 52, ; - Command2.Name = "Command2", ; - Command2.Top = 52, ; - Line1.Name = "Line1", ; - Line1.Width = 462, ; - Line2.Name = "Line2", ; - Line2.Top = 48, ; - Line2.Width = 461, ; - txt1.Name = "txt1", ; - txt1.Width = 461 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page4.Textboxcontainer3' AS gf_textboxcontainer WITH ; - Anchor = 10, ; - BorderColor = 200,200,200, ; - Height = 77, ; - Left = 12, ; - Name = "Textboxcontainer3", ; - TabIndex = 2, ; - Top = 104, ; - Visible = .T., ; - Width = 473, ; - Label1.Caption = "Method Name", ; - Label1.Name = "Label1", ; - Label1.Width = 462, ; - Command1.Name = "Command1", ; - Command1.Top = 53, ; - Command2.Name = "Command2", ; - Command2.Top = 53, ; - Line1.Name = "Line1", ; - Line1.Width = 462, ; - Line2.Name = "Line2", ; - Line2.Top = 49, ; - Line2.Width = 461, ; - txt1.Name = "txt1", ; - txt1.Width = 461 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType' AS gf_filtercheckboxcontainer WITH ; - BorderColor = 200,200,200, ; - Height = 205, ; - Left = 5, ; - Name = "containerMatchType", ; - TabIndex = 2, ; - Top = 2, ; - Visible = .T., ; - Width = 484, ; - Label1.Caption = "MatchType", ; - Label1.Left = 69, ; - Label1.Name = "Label1", ; - Label1.TabIndex = 31, ; - Label1.Top = 4, ; - Label1.Width = 369, ; - Command1.Left = 10, ; - Command1.Name = "Command1", ; - Command1.TabIndex = 29, ; - Command1.Top = 180, ; - Command2.Left = 46, ; - Command2.Name = "Command2", ; - Command2.TabIndex = 30, ; - Command2.Top = 180, ; - Line1.Name = "Line1", ; - Line1.Width = 496, ; - Line2.Height = 6, ; - Line2.Left = 6, ; - Line2.Name = "Line2", ; - Line2.Top = -78, ; - Line2.Width = 496 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check1' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 113, ; - Name = "Check1", ; - TabIndex = 11, ; - Top = 24, ; - Value = .T., ; - Width = 61 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check10' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 390, ; - Name = "Check10", ; - TabIndex = 1, ; - Top = 24, ; - Value = .T., ; - Width = 76 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check11' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 113, ; - Name = "Check11", ; - TabIndex = 2, ; - Top = 78, ; - Value = .T., ; - Width = 79 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check12' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 252, ; - Name = "Check12", ; - TabIndex = 3, ; - Top = 24, ; - Value = .T., ; - Width = 90 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check14' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 8, ; - Name = "Check14", ; - TabIndex = 5, ; - Top = 78, ; - Value = .T., ; - Width = 75 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check16' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 8, ; - Name = "Check16", ; - TabIndex = 6, ; - Top = 96, ; - Value = .T., ; - Width = 70 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check17' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 113, ; - Name = "Check17", ; - TabIndex = 8, ; - Top = 96, ; - Value = .T., ; - Width = 85 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check18' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 113, ; - Name = "Check18", ; - TabIndex = 9, ; - Top = 60, ; - Value = .T., ; - Width = 59 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check19' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 113, ; - Name = "Check19", ; - TabIndex = 13, ; - Top = 42, ; - Value = .T., ; - Width = 66 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check2' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 8, ; - Name = "Check2", ; - TabIndex = 21, ; - Top = 42, ; - Value = .T., ; - Width = 79 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check20' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 113, ; - Name = "Check20", ; - TabIndex = 10, ; - Top = 114, ; - Value = .T., ; - Width = 94 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check21' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 8, ; - Name = "Check21", ; - TabIndex = 14, ; - Top = 60, ; - Value = .T., ; - Width = 83 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check22' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 252, ; - Name = "Check22", ; - TabIndex = 15, ; - Top = 78, ; - Value = .T., ; - Width = 102 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check23' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 390, ; - Name = "Check23", ; - TabIndex = 18, ; - Top = 42, ; - Value = .T., ; - Width = 73 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check24' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 113, ; - Name = "Check24", ; - TabIndex = 19, ; - Top = 150, ; - Value = .T., ; - Width = 86 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check3' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 252, ; - Name = "Check3", ; - TabIndex = 4, ; - Top = 60, ; - Value = .T., ; - Width = 96 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check4' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 252, ; - Name = "Check4", ; - TabIndex = 16, ; - Top = 96, ; - Value = .T., ; - Width = 106 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check5' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 113, ; - Name = "Check5", ; - TabIndex = 12, ; - Top = 132, ; - Value = .T., ; - Width = 113 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check7' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 252, ; - Name = "Check7", ; - TabIndex = 17, ; - Top = 114, ; - Value = .T., ; - Width = 105 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check8' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 252, ; - Name = "Check8", ; - TabIndex = 7, ; - Top = 42, ; - Value = .T., ; - Width = 96 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Check9' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 8, ; - Name = "Check9", ; - TabIndex = 20, ; - Top = 114, ; - Value = .T., ; - Width = 78 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox1' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Code", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 8, ; - Name = "Gf_filtercheckbox1", ; - TabIndex = 22, ; - Top = 24, ; - Value = .T., ; - Width = 43 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox2' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 390, ; - Name = "Gf_filtercheckbox2", ; - TabIndex = 23, ; - Top = 84, ; - Value = .T., ; - Width = 56 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox3' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 390, ; - Name = "Gf_filtercheckbox3", ; - TabIndex = 28, ; - Top = 174, ; - Value = .T., ; - Width = 74 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox4' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 390, ; - Name = "Gf_filtercheckbox4", ; - TabIndex = 26, ; - Top = 102, ; - Value = .T., ; - Width = 61 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox5' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 390, ; - Name = "Gf_filtercheckbox5", ; - TabIndex = 24, ; - Top = 120, ; - Value = .T., ; - Width = 52 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox6' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 390, ; - Name = "Gf_filtercheckbox6", ; - TabIndex = 27, ; - Top = 138, ; - Value = .T., ; - Width = 58 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Gf_filtercheckbox7' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 390, ; - Name = "Gf_filtercheckbox7", ; - TabIndex = 25, ; - Top = 156, ; - Value = .T., ; - Width = 67 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page5.containerMatchType.Label2' AS label WITH ; - Caption = "Reports", ; - Height = 15, ; - Left = 390, ; - Name = "Label2", ; - TabIndex = 32, ; - Top = 66, ; - Width = 51 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType' AS gf_filtercheckboxcontainer WITH ; - BorderColor = 200,200,200, ; - Height = 188, ; - Left = 128, ; - Name = "containerFileType", ; - TabIndex = 1, ; - Top = 8, ; - Width = 244, ; - Label1.Caption = "FileType", ; - Label1.Name = "Label1", ; - Label1.TabIndex = 19, ; - Label1.Width = 233, ; - Command1.Name = "Command1", ; - Command1.TabIndex = 20, ; - Command1.Top = 165, ; - Command2.Name = "Command2", ; - Command2.TabIndex = 21, ; - Command2.Top = 165, ; - Line1.Name = "Line1", ; - Line1.Width = 233, ; - Line2.Height = 0, ; - Line2.Left = 5, ; - Line2.Name = "Line2", ; - Line2.Top = 160, ; - Line2.Width = 233 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkASP' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "ASP", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 173, ; - Name = "chkASP", ; - TabIndex = 16, ; - Top = 84, ; - Value = .T., ; - Width = 37 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkDBC' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "DBC", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 29, ; - Name = "chkDBC", ; - TabIndex = 7, ; - Top = 139, ; - Value = .T., ; - Width = 38 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkFRX' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "FRX", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 29, ; - Name = "chkFRX", ; - TabIndex = 3, ; - Top = 65, ; - Value = .T., ; - Width = 37 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkH' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = ".h", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 102, ; - Name = "chkH", ; - TabIndex = 12, ; - Tag = "h", ; - Top = 102, ; - Value = .T., ; - Width = 28 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.ChkHTML' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "HTML", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 173, ; - Name = "ChkHTML", ; - TabIndex = 13, ; - Top = 27, ; - Value = .T., ; - Width = 44 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkini' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "INI", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 102, ; - Name = "chkini", ; - TabIndex = 11, ; - Top = 84, ; - Value = .T., ; - Width = 33 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkJava' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "JAVA", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 173, ; - Name = "chkJava", ; - TabIndex = 17, ; - Top = 103, ; - Value = .T., ; - Width = 43 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkJSP' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "JSP", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 173, ; - Name = "chkJSP", ; - TabIndex = 18, ; - Top = 122, ; - Value = .T., ; - Width = 35 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkLBX' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "LBX", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 29, ; - Name = "chkLBX", ; - TabIndex = 4, ; - Top = 83, ; - Value = .T., ; - Width = 35 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkMNX' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "MNX", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 29, ; - Name = "chkMNX", ; - TabIndex = 5, ; - Top = 101, ; - Value = .T., ; - Width = 39 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkMPR' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "MPR", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 102, ; - Name = "chkMPR", ; - TabIndex = 9, ; - Top = 46, ; - Value = .T., ; - Width = 39 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkPJX' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "PJX", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 29, ; - Name = "chkPJX", ; - TabIndex = 6, ; - Top = 120, ; - Value = .T., ; - Width = 35 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkPRG' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "PRG", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 102, ; - Name = "chkPRG", ; - TabIndex = 8, ; - Top = 27, ; - Value = .T., ; - Width = 38 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkSCX' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "SCX", ; - ControlSource = "", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 29, ; - Name = "chkSCX", ; - TabIndex = 1, ; - Top = 27, ; - Value = .T., ; - Width = 37 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkSPR' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "SPR", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 102, ; - Name = "chkSPR", ; - TabIndex = 10, ; - Top = 65, ; - Value = .T., ; - Width = 37 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkTXT' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "TXT", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 173, ; - Name = "chkTXT", ; - TabIndex = 15, ; - Top = 65, ; - Value = .T., ; - Width = 36 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkVCX' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "VCX", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 29, ; - Name = "chkVCX", ; - TabIndex = 2, ; - Top = 46, ; - Value = .T., ; - Width = 37 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - ADD OBJECT 'PageFrame.Page6.containerFileType.chkXML' AS gf_filtercheckbox WITH ; - Alignment = 0, ; - BackStyle = 0, ; - Caption = "XML", ; - FontName = "Tahoma", ; - FontSize = 8, ; - Height = 15, ; - Left = 173, ; - Name = "chkXML", ; - TabIndex = 14, ; - Top = 46, ; - Value = .T., ; - Width = 37 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="checkbox" /> - - PROCEDURE applychanges - This.SaveFilterSettings(This.cFilterOptionsXMLFile) - - - ENDPROC - - PROCEDURE bind - Lparameters toContainer - - lcControlSourceRoot = 'Thisform.oFilter.' - - For each control in toContainer.Controls - If PemStatus(control, 'ControlSource', 5) and !Empty(control.ControlSource) - control.ControlSource = lcControlSourceRoot + control.ControlSource - EndIf - EndFor - - ENDPROC - - PROCEDURE bindeachpage - *-- Bind up controls to an empty class instance so form can set up - Local loControl, loPage - For Each m.loPage In This.PageFrame.Objects FoxObject - For Each m.loControl In m.loPage.Controls - If Upper(m.loControl.BaseClass) = 'CONTAINER' - This.Bind(m.loControl) - Endif - Endfor - Endfor - - - ENDPROC - - PROCEDURE buildcheckboxfilter - Lparameters toContainer, tcFilterObjectProperty, tcSeparator - - Local lcCondition, lcExistingString, lcField, lcFilter, lcFilterObjectProperty, lcNewString, lcValue - - lnSelect = Select() - Select (Thisform.oForm.cSearchResultsAlias) - - lcField = Getwordnum(tcFilterObjectProperty, 1, '_') - lcValue = Getwordnum(tcFilterObjectProperty, 2, '_') - - lcFilterObjectProperty = 'Thisform.oFilter.' + tcFilterObjectProperty - lcFilterObjectProperty = Strtran(lcFilterObjectProperty, '<', '') - lcFilterObjectProperty = Strtran(lcFilterObjectProperty, '>', '') - lcFilterObjectProperty = Strtran(lcFilterObjectProperty, ' ', '') - - lcNewString = '' - - If Empty(tcSeparator) - tcSeparator = 'or' - Endif - - lcExistingString = toContainer.cFilter - - If !Empty(lcExistingString) - lcNewString = lcExistingString + ' ' + tcSeparator + ' ' - Endif - - *lcCondition = 'Alltrim(Upper(' + lcField + ')) == [' + Alltrim(Upper(lcValue)) + ']' - - lcCondition = 'Alltrim(' + lcField + ')==[' + Alltrim(lcValue) + ']' - - *-- Determine if passed value is present in column of search resutls. - *-- If not, then disable control since, well, there are none, - Locate For &lcCondition - - If !Found() - This.EnableControl(toContainer, lcValue, .F.) - Else - This.EnableControl(toContainer, lcValue, .T.) - Endif - - - *-- Add this filter to the filter string if the property is selected, and the value exists - Try && Could fail if we matched on the (alternate) Tag value, which is fine. - If Eval(lcFilterObjectProperty)&& And Found() - lcFilter = lcNewString + lcCondition - toContainer.cFilter = lcFilter - Endif - Catch - Endtry - - Select (lnSelect) - - ENDPROC - - PROCEDURE buildcontainerfilters - Lparameters toContainer - - Local lcField, lcFilterObjectProperty, lcValue, loControl - - Do Case - - Case Upper(toContainer.Class) = 'GF_FILTERCHECKBOXCONTAINER' - For Each loControl in toContainer.Controls - - *==== CHECKBOXES ================================================= - If Upper(loControl.baseclass) = 'CHECKBOX' - lcFilterObjectProperty = GetWordNum(loControl.ControlSource, 3, '.') - - If Upper(toContainer.name) <> 'CONTAINERMATCHTYPE' - This.BuildCheckBoxFilter(toContainer, lcFilterObjectProperty) - Endif - - *-- Optionally work with Tag value if ControlSource did not match up with any values in the table - *If (loControl.Enabled = .f. or '<' $ loControl.tag) and !Empty(loControl.Tag) && Tag could hold an alternate match in the column - If !Empty(loControl.Tag) && Tag could hold an alternate match in the column - lcField = GetWordNum(lcFilterObjectProperty, 1, '_') - lcValue = '_' + loControl.tag - This.BuildCheckBoxFilter(toContainer, lcField + lcValue) - Endif - - EndIf - EndFor - - Case Upper(toContainer.Class) = 'GF_TEXTBOXCONTAINER' - loControl = toContainer.txt1 - lcFilterObjectProperty = GetWordNum(loControl.ControlSource, 3, '.') - lcFieldInTable = GetWordNum(lcFilterObjectProperty, 1, '_')&& Need to chop off the '_Filter' part of the ControlSource - lcValue = Alltrim(loControl.Value) - This.BuildTextboxFilter(toContainer, lcFieldInTable, lcValue) - - Case Upper(toContainer.Class) = 'GF_TIMESTAMPCONTAINER' - lcFilter = '' - ldFromDate = Thisform.oFilter.Timestamp_FilterFrom - ldToDate = Thisform.oFilter.Timestamp_FilterTo - - If !Empty(toContainer.chkTimeStamp.value) - lcFromDate = Transform(dtos(ldFromDate), '@R {^####/##/##') + '}' - lcToDate = Transform(dtos(ldToDate), '@R {^####/##/##') + '}' - - Do Case - Case Empty(ldFromDate) and Empty(ldToDate) - *-- Do Nothing - Case Empty(ldFromDate) - lcFilter = 'TimeStamp <= ' + lcToDate - Case Empty(ldToDate) - lcFilter = 'TimeStamp >= ' + lcFromDate - Otherwise - lcFilter = 'TimeStamp >= ' + lcFromDate + ' and TimeStamp <= ' + lcToDate - Endcase - - toContainer.cFilter = lcFilter - - EndIf - - Endcase - - - - - - - - ENDPROC - - PROCEDURE buildfilterstring - Local lcAnd, lcFilter, loControl, loPage - - lcFilter = '' - lcAnd = '' - - For Each m.loPage In This.PageFrame.Objects FoxObject - For Each m.loControl In m.loPage.Controls - If Upper(m.loControl.BaseClass) = 'CONTAINER' - loControl.cFilter = '' - This.BuildContainerFilters(m.loControl) - If Not Empty(m.loControl.cFilter) - lcFilter = m.lcFilter + m.lcAnd + '(' + m.loControl.cFilter + ')' - lcAnd = ' and ' - Endif - Endif - Endfor - Endfor - - Do Case - Case This.oFilter.OnlyFirstMatchInProcedure = .F. and This.oFilter.OnlyFirstMatchInStatement = .F. - - Case Empty(lcFilter) and This.oFilter.OnlyFirstMatchInProcedure = .T. - lcFilter = [(FirstMatchInProcedure or MatchType # 'Code ')] - - Case Empty(lcFilter) and This.oFilter.OnlyFirstMatchInStatement = .T. - lcFilter = [(FirstMatchInStatement or MatchType # 'Code ')] - - Case This.oFilter.OnlyFirstMatchInProcedure = .T. - lcFilter = [(FirstMatchInProcedure or MatchType # 'Code ') and (] + m.lcFilter + ')' - - Otherwise - lcFilter = [(FirstMatchInStatement or MatchType # 'Code ') and (] + m.lcFilter + ')' - - Endcase - - This.cFilter = m.lcFilter - - ENDPROC - - PROCEDURE buildtextboxfilter - Lparameters toContainer, tcField, tcValue - - #Define VISIBLE_AND '|and|' - #Define VISIBLE_OR '|or|' - - #Define AND_DELIMITER Chr[255] - #Define OR_DELIMITER Chr[254] - - Local laValues[1], lcField, lcFilter, lcNewFilter, lcSearchField, lcSearchValue, lcText, lcValue - Local llAnd, llLike, llNextAnd, llNot, lnCount, lnI - - lcValue = Alltrim(Upper(m.tcValue)) - lcValue = Strtran(m.lcValue, VISIBLE_AND, AND_DELIMITER, 1, 100, 1) - lcValue = Strtran(m.lcValue, VISIBLE_OR, OR_DELIMITER, 1, 100, 1) - lcValue = Strtran(m.lcValue, '|', OR_DELIMITER, 1, 100, 1) - lnCount = Alines(laValues, m.lcValue, 16, OR_DELIMITER, AND_DELIMITER) - - lcNewFilter = '' - For lnI = 1 To m.lnCount - lcSearchValue = m.laValues[m.lnI] - Do Case - Case AND_DELIMITER = Right(m.lcSearchValue, 1) - llNextAnd = .T. - lcSearchValue = Left(m.lcSearchValue, Len(m.lcSearchValue) - 1) - Case OR_DELIMITER = Right(m.lcSearchValue, 1) - llNextAnd = .F. - lcSearchValue = Left(m.lcSearchValue, Len(m.lcSearchValue) - 1) - Otherwise - llNextAnd = .T. - Endcase - - lcSearchValue = Upper(m.lcSearchValue) - - If Not Empty(m.lcSearchValue) - - If Left(m.lcSearchValue, 1) = '!' And Thisform.oFilter.FilterNot - lcSearchValue = Substr(m.lcSearchValue, 2) - llNot = .T. - Endif - - lcField = m.tcField - If Thisform.oFilter.FilterLike - If Thisform.oFilter.FilterExactMatch - lcField = 'Alltrim(' + m.tcField + ', chr[9], chr[10], chr[13], " ")' - Else - lcSearchValue = '*' + m.lcSearchValue + '*' - Endif - llLike = .T. - Endif - - lcText = ["] + Strtran(m.lcSearchValue, '"', '" + ["] + "') + ["] - - If ' ' $ m.lcSearchValue - lcSearchField = 'Upper(Chrtran(' + m.lcField + ', chr[9] + chr[10] + chr[13], " "))' - Else - lcSearchField = 'Upper(' + m.lcField + ')' - Endif - - Do Case - Case m.llLike = .T. - lcFilter = 'Like(' + m.lcText + ', ' + m.lcSearchField + ')' - Case Thisform.oFilter.FilterExactMatch - lcFilter = m.lcText + ' = ' + m.lcSearchField - Otherwise - lcFilter = m.lcText + ' $ ' + m.lcSearchField - Endcase - - If m.llNot - lcFilter = '!(' + m.lcFilter + ')' - Endif - - If Empty(m.lcNewFilter) - lcNewFilter = m.lcFilter - Else - lcNewFilter = m.lcNewFilter + Iif(m.llAnd, ' and ', ' or ') + m.lcFilter - Endif - llAnd = m.llNextAnd - - Else - lcFilter = '' - Endif - - Endfor - - If Empty(m.lcNewFilter) - toContainer.cFilter = m.lcNewFilter - Else - toContainer.cFilter = '(' + m.lcNewFilter + ')' - Endif - - ENDPROC - - PROCEDURE clearallfilters - Local loControl, loPage - For Each m.loPage In This.PageFrame.Objects FoxObject - For Each m.loControl In m.loPage.Controls - If Upper(m.loControl.BaseClass) = 'CONTAINER' - loControl.Clear() - Endif - Endfor - Endfor - - Thisform.RefreshPageCaptions() - - ENDPROC - - PROCEDURE decoratepage - Lparameters loPage, tlDecorated - - Local llDecorated, loControl - - If Pcount() = 2 - llDecorated = m.tlDecorated - Else - llDecorated = .F. - For Each m.loControl In m.loPage.Controls - If Upper(m.loControl.BaseClass) = 'CONTAINER' - llDecorated = m.llDecorated Or m.loControl.lDecorated - Endif - Endfor - Endif - - With m.loPage - If m.llDecorated - .ForeColor = Rgb(255, 0, 0) - .FontBold = .T. - Else - .ForeColor = Rgb(0, 0, 0) - .FontBold = .F. - Endif - Endwith - ENDPROC - - PROCEDURE Destroy - DoDefault() - - This.BuildFilterString() - - This.oFilter = .null. - - - ENDPROC - - PROCEDURE enablecontrol - Lparameters toContainer, tcCaption, tlEnabled - - *-- Looks for a Checkbox within the passed Container, based on the the Caption. - *-- If found, sets Enabled status to tlEnabed. - - Local lcContainer, loControl - - For each loControl in toContainer.Controls - If Upper(loControl.baseclass) = 'CHECKBOX' - lcTag = Alltrim(Upper(loControl.Tag)) - lcCaption = Alltrim(Upper(Strtran(loControl.caption, '.', ''))) && To handle .h caption on FileType container - tcCaption = Alltrim(Upper(tcCaption)) - - If tcCaption = lcCaption or (lcTag = tcCaption and !Empty(lcTag)) - *loControl.Enabled = tlEnabled - - If tlEnabled = .t. - loControl.Forecolor = Rgb(0,0,0) - *loControl.FontBold = .t. - Else - loControl.Forecolor = Rgb(180,180,180) - *loControl.FontBold = .f. - Endif - - EndIf - - If !loControl.Enabled - *loControl.Value = 0 - EndIf - - EndIf - EndFor - - - - - - - - ENDPROC - - PROCEDURE Init - Lparameters toForm, toFilter - - Local loControl, loPage - - This.MaxHeight = This.Height - This.MinHeight = This.Height - * This.MaxWidth = This.Width - This.MinWidth = This.Width - - DoDefault(m.toForm) - - If Vartype(m.toFilter) = 'O' - *-- oFilter should already loaded up with values. - Thisform.oFilter = m.toFilter - Else - This.oFilter = Createobject(This.cFilterOptionsClass) - This.oFilter.LoadFromFile(This.cFilterOptionsXMLFile) - *Thisform.LoadFilterSettings(this.cFilterOptionsXMLFile) - Endif - - *-- XML file stores DateTime, so need to convert to just Date - With Thisform.oFilter - If Vartype(.Timestamp_FilterFrom) = 'T' - .Timestamp_FilterFrom = Ttod(.Timestamp_FilterFrom) - Endif - If Vartype(.Timestamp_FilterTo) = 'T' - .Timestamp_FilterTo = Ttod(.Timestamp_FilterTo) - Endif - Endwith - - ThisForm.BindEachPage() - Thisform.RefreshPageCaptions() - - Thisform.Buildfilterstring() && Call this to handle disabling of checkboxes - - Thisform.Refresh() - - - ENDPROC - - PROCEDURE loadfiltersettings && Loads saved settings from XML file. - Lparameters tcFile - - Local loMy as 'My' OF 'My.vcx' - Local laProperties[1], lcProperty - - If !File(tcFile) - Return - EndIf - - loMy = Newobject('My', 'My.vcx') - AMembers(laProperties, This.oFilter, 0, 'U') - loMy.Settings.Load(tcFile) - - With loMy.Settings - - For x = 1 to Alen(laProperties) - lcProperty = laProperties[x] - Try - Store Evaluate('.' + lcProperty) to ('This.oFilter.' + lcProperty) - Catch - EndTry - Endfor - - Endwith - - - - ENDPROC - - PROCEDURE loadformsettings - Local loMy As 'My' Of 'My.vcx' - Local lcSettingsFile, loSettings - - This.MinWidth = This.Width - This.MinHeight = This.Height - - loMy = Newobject('My', 'My.vcx') - loSettings = m.loMy.Settings - - lcSettingsFile = This.cUISettingsFile - m.loSettings.Load(m.lcSettingsFile) - - If m.loSettings.Exists('FormTop') - With m.loSettings - This.Top = .FormTop - This.Left = .FormLeft - This.Width = .FormWidth - This.PageFrame.ActivePage = PropNvl(m.loSettings, 'StartPage', 1, .T.) - Endwith - Endif - - ENDPROC - - PROCEDURE QueryUnload - thisform.llReturn = .f. - ENDPROC - - PROCEDURE refreshpagecaptions - Local llDecorated, loControl, loPage - For Each m.loPage In This.PageFrame.Objects FoxObject - llDecorated = .F. - For Each m.loControl In m.loPage.Controls - If Upper(m.loControl.BaseClass) = 'CONTAINER' - llDecorated = m.llDecorated Or m.loControl.ShouldBeDecorated() - Endif - Endfor - This.DecoratePage(m.loPage, m.llDecorated) - Endfor - - - ENDPROC - - PROCEDURE refreshtextboxoptions - Lparameters llVisible - this.cntTextBoxOptions.Visible = llVisible - ENDPROC - - PROCEDURE savefiltersettings - Lparameters tcFile - - Local loMy as 'My' OF 'My.vcx' - Local laProperties[1], lcProperty - - loMy = Newobject('My', 'My.vcx') - - AMembers(laProperties, This.oFilter, 0, 'U') - - With loMy.Settings - - For x = 1 to Alen(laProperties) - lcProperty = laProperties[x] - If !lcProperty = '_MEMBERDATA' - .Add(lcProperty, Evaluate('This.oFilter.' + lcProperty)) - EndIf - Endfor - - .Save(tcFile) - - Endwith - - ENDPROC - - PROCEDURE saveformsettings - Local loMy As 'My' Of 'My.vcx' - Local lcSettingsFile, loSettings - - loMy = Newobject('My', 'My.vcx') - loSettings = m.loMy.Settings - - lcSettingsFile = This.cUISettingsFile - m.loSettings.Load(m.lcSettingsFile) - - With m.loSettings - *-- Form Size and Position ----------------------------- - .Add('FormTop', This.Top) - .Add('FormLeft', This.Left) - .Add('FormWidth', This.Width) - .Add('StartPage', This.PageFrame.ActivePage) - .Save(m.lcSettingsFile ) - Endwith - - - - ENDPROC - - PROCEDURE Unload - If Thisform.llReturn = .t. - Return Thisform.cFilter - Else - Return .null. - Endif - - - ENDPROC - - PROCEDURE cntTextBoxOptions.Check2.Valid - Thisform.cntTextBoxOptions.chkFilterExactMatch.Refresh() - - ENDPROC - - PROCEDURE cntTextBoxOptions.chkFilterExactMatch.Refresh - This.Value = Not Thisform.oFilter.FilterExactMatch - ENDPROC - - PROCEDURE cntTextBoxOptions.chkFilterExactMatch.Valid - Thisform.oFilter.FilterExactMatch = Not This.Value - ENDPROC - - PROCEDURE Command1.Click - Thisform.llReturn = .t. - - ThisForm.ApplyChanges() - - Thisform.Release() - - - ENDPROC - - PROCEDURE Command3.Click - ThisForm.ClearAllFilters() - - ENDPROC - - PROCEDURE Command4.Click - Thisform.Release() - - - ENDPROC - - PROCEDURE PageFrame.Page1.Activate - DoDefault() - This.Refresh() - ThisForm.RefreshTextBoxOptions(.t.) - - - ENDPROC - - PROCEDURE PageFrame.Page1.Gf_filtersinglecheckboxcontainer1.chkApplyFilter.Valid - This.Parent.Refresh() - ENDPROC - - PROCEDURE PageFrame.Page1.Gf_filtersinglecheckboxcontainer2.chkApplyFilter.Valid - This.Parent.Refresh() - ENDPROC - - PROCEDURE PageFrame.Page1.Label1.Init - Text To This.Caption Noshow Textmerge - Finds matches to the entered text within the same PROCEDURE as the original match. - Endtext - ENDPROC - - PROCEDURE PageFrame.Page1.Label4.Init - Text To This.Caption Noshow Textmerge - Finds matches to the entered text within the same STATEMENT (including continuation lines) as the original match. - Endtext - ENDPROC - - PROCEDURE PageFrame.Page2.Activate - DoDefault() - This.Refresh() - ThisForm.RefreshTextBoxOptions(.t.) - - ENDPROC - - PROCEDURE PageFrame.Page3.Activate - DoDefault() - This.Refresh() - ThisForm.RefreshTextBoxOptions(.t.) - - ENDPROC - - PROCEDURE PageFrame.Page4.Activate - DoDefault() - This.Refresh() - ThisForm.RefreshTextBoxOptions(.t.) - - ENDPROC - - PROCEDURE PageFrame.Page5.Activate - DoDefault() - This.Refresh() - ThisForm.RefreshTextBoxOptions(.F.) - - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check1.Init - This.Caption = MATCHTYPE_NAME - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check10.Init - This.Caption = MATCHTYPE_FILENAME - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check11.Init - This.Caption = MATCHTYPE_CLASS_DEF - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check12.Init - This.Caption = MATCHTYPE_METHOD_DEF - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check16.Init - This.Caption = MATCHTYPE_METHOD - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check17.Init - This.Caption = MATCHTYPE_BASECLASS - - - - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check18.Init - This.Caption = MATCHTYPE_CLASS - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check2.Init - This.Caption = MATCHTYPE_COMMENT - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check20.Init - This.Caption = MATCHTYPE_PARENTCLASS - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check22.Init - This.Caption = MATCHTYPE_PROPERTY_DESC - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check23.Init - This.Caption = MATCHTYPE_FILEDATE - - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check24.Init - This.Caption = MATCHTYPE_TIMESTAMP - - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check3.Init - This.Caption = MATCHTYPE_PROPERTY_DEF - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check4.Init - This.Caption = MATCHTYPE_PROPERTY_NAME - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check5.Init - This.Caption = MATCHTYPE_CONTAINING_CLASS - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check7.Init - This.Caption = MATCHTYPE_PROPERTY_VALUE - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check8.Init - This.Caption = MATCHTYPE_METHOD_DESC - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Check9.Init - This.Caption = MATCHTYPE_CONSTANT - - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox1.Init - This.Caption = MATCHTYPE_CODE - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox2.Init - This.Caption = MATCHTYPE_FRX_EXPR - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox3.Init - This.Caption = MATCHTYPE_FRX_SUPEXPR - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox4.Init - This.Caption = MATCHTYPE_FRX_NAME - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox5.Init - This.Caption = MATCHTYPE_FRX_TAG - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox6.Init - This.Caption = MATCHTYPE_FRX_TAG2 - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Gf_filtercheckbox7.Init - This.Caption = MATCHTYPE_FRX_PICTURE - ENDPROC - - PROCEDURE PageFrame.Page5.containerMatchType.Init - - DoDefault() - - For Each loControl in This.Controls - If Upper(loControl.baseclass) = 'CHECKBOX' - loControl.Tag = loControl.Caption - Endif - EndFor - - - ENDPROC - - PROCEDURE PageFrame.Page6.Activate - DoDefault() - This.Refresh() - ThisForm.RefreshTextBoxOptions(.F.) - - ENDPROC - -ENDDEFINE +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_filterpf.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="gf_filter" Baseclass="form" /> + +* +#INCLUDE "..\lib\gofish.h" diff --git a/Source/Forms/gofish_filterpf.scx b/Source/Forms/gofish_filterpf.scx index 629a7c1..e5f13fe 100644 Binary files a/Source/Forms/gofish_filterpf.scx and b/Source/Forms/gofish_filterpf.scx differ diff --git a/Source/Forms/gofish_options.SCT b/Source/Forms/gofish_options.SCT index 0605fe0..7349502 100644 Binary files a/Source/Forms/gofish_options.SCT and b/Source/Forms/gofish_options.SCT differ diff --git a/Source/Forms/gofish_options.dataenvironment.sc2 b/Source/Forms/gofish_options.dataenvironment.sc2 new file mode 100644 index 0000000..1fbb9a7 --- /dev/null +++ b/Source/Forms/gofish_options.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_options.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gofish_options.gf_options.sc2 b/Source/Forms/gofish_options.gf_options.sc2 new file mode 100644 index 0000000..f10e79b --- /dev/null +++ b/Source/Forms/gofish_options.gf_options.sc2 @@ -0,0 +1,4680 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_options.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS gf_options AS gf_baseform OF "..\lib\gofishui.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="pfSettings" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColumns.containerColumnCheckBoxes" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColumns.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColumns.cmdSelectAll" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColumns.cmdClearAll" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColumns.cmdDefault" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Shape1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.cboDockable" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Spinner2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Spinner3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.chkDesktop" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check9" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check10" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check11" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check12" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check13" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label10" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Spinner1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Label7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Spinner4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.cmdZoomDefault" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Label8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Spinner5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Label9" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Spinner6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Label11" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Spinner7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Label5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.Spinner8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.contMiscellaneous.lblChangeFontSize" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.List1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.cmdOpenFolder" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.cmdDeleteConfigFiles" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label11" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReplace.optiongroupReplaceSafetyLevel" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Image1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Check2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Command2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page2.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page2.Spinner1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page2.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page2.Spinner2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page2.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page2.Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page2.Spinner3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container17" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container16" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container15" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container1.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container2.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container3.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container4.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container5.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container6.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container7.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container8.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label9" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command9" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container9" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container9.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label10" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command10" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container10" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container10.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label11" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command11" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container11" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container11.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label12" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command12" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container12" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container12.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label13" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command13" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container13" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container13.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label14" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Command14" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container14" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Container14.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label15" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label16" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageColours.Label17" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Check2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Check4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Check7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Check8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Container1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Container1.Optiongroup1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Container1.cmdSetFolder" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Container1.txtParentFolder" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Container1.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Container1.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Container1.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Container1.Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Container1.Label5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Container1.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.chk_CRMode" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Label9" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Check3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Optiongroup1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.pageReferences.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.Label5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.Spinner8" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.lblChangeFontSize" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contMiscellaneous" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contMiscellaneous.Check10" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contMiscellaneous.Check11" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contMiscellaneous.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Check5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Check12" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Command1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Container1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Container1.lblExample1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Label5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Label7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.Spinner4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.cmdZoomDefault" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.contCodeView.chkDarkMode" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.Check13" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.Check4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.Check5" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.cntContextMenu" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.cntContextMenu.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.cntContextMenu.spnContextMenu" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.cntContextMenu.Check10" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page1.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.cmdBrowse" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.cmdEdit" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.txtCustomUDF" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.Label4" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.Label3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.cmdGotoFAQ" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.cmdSettingsUDF" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.cmdEditSettings" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.txtSettingsUDF" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="pfSettings.Page3.pfSettings.Page2.Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cmdOK" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cmdCancel" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Gf_versionlabel1" UniqueID="" Timestamp="" /> + + * + *m: applycolumnsettings + *m: askifsavechanges + *m: buildcolumncheckboxes + *m: loadoptions + *m: loadresultsformproperties + *m: saveoptions + *m: set_localfolder && cCR_StoreLocal_Option activated Check folder + *m: validate + *p: ccr_storelocal_option && Internal storage for new local path, just to display and set. + *p: ccr_storelocal_set && Internal storage for local path, just storage. + *p: dlastjanitorrundate + *p: lcr_historyperscope && Shows search history per scope. + *p: lcr_historytree && Tree with History in it. Follows lCR_HistoryPerScope. + *p: lcr_historytreeauto && Fill all searches with data on startup. (slow) + *p: lcr_local && Use local storage place. + *p: lcr_local_default && Local storage will be created on standard place by default. + *p: lcr_openmode && Open like Code Referenves, Active Project or Folder. + *p: lcr_searchcomboperscope && Show only searches for the recent scape. + *p: lcr_simpletree && Tree without the class nodes. Just search / files. + *p: lcr_sorttreealpha && Sort tree alphanumeric NOT by recent. + *p: lcr_sorttreebyext && Sort Nodes by extension first. Only for Tree without the class nodes. + *p: ldeletestorage && Flag to delete search and replace storage upon exit. + *p: ldesktop && The setting for Desktop. + *p: lmovenewcodetotopleft + *p: lotherhistory && Sort buttons on Histoey form normal + *p: lrestoreprevioussearchresultsonstartup + *p: lreturn + *p: lsavesearchresults + *p: lshowrelativepath + *p: lsortscopedropdown + *p: lusesystemcontextmenufontsize + *p: lwarnwholeword + *p: nbrowserfontsize + *p: ncodeviewlinesbefore + *p: ncontainerframecolour && Frame colour for several containers, in case red is something you do not see. + *p: ncontextmenufontsize + *p: ncss_tr_even_colour && CSS fr tr:even + *p: ncss_tr_odd_colour && CSS fr tr:odd + *p: ndockable + *p: nfiledefaultdynamicforecolour && Grid, dynamic fore colour file type Default + *p: nfileprgdynamicforecolour && Grid, dynamic fore colour file type PRG + *p: nfilescxdynamicforecolour && Grid, dynamic fore colour file type SCX + *p: nfilevcxdynamicforecolour && Grid, dynamic fore colour file type VCX + *p: nformfontsize + *p: njanitorreplacehistorydays + *p: njanitorrundays + *p: njanitorsearchhistorydays + *p: nreplaceddynamicbackcolour && Grid, dynamic back colour replaced + *p: nreplacerisk + *p: nrisk1dynamicbackcolour && Grid, dynamic back colour replace risk value 1 + *p: nrisk2dynamicbackcolour && Grid, dynamic back colour replace risk value 2 + *p: nrisk3dynamicbackcolour && Grid, dynamic back colour replace risk value 3 + *p: nriskexceededdynamicbackcolour && Grid, dynamic back colour replace risk exceeds setting + *p: nsearchboxfontsize + *p: ntabstospaces + *p: ntreesearchcolour && Tree colour while searching? + *p: ntreeupdatecolour && Tree colour while updateing? + *p: ntreeviewfontsize + *p: ooptions && A reference to the oSearchOptions object on GF main form. + * + + * + AlwaysOnTop = .T. + BindControls = .F. + BorderStyle = 3 + Caption = "GoFish Options" + ccr_storelocal_option = + cuisettingsfile = GF_Options_Form_Settings.xml + dlastjanitorrundate = / / + DoCreate = .T. + Height = 600 + KeyPreview = .T. + Left = 0 + lrestoreprevioussearchresultsonstartup = .F. + lreturn = .F. + lsavesearchresults = .T. + lshowrelativepath = .F. + lsortscopedropdown = .F. + lusesystemcontextmenufontsize = .F. + lwarnwholeword = .F. + MinHeight = 600 + MinWidth = 650 + Name = "gf_options" + nbrowserfontsize = 14 + ncodeviewlinesbefore = 0 + ncontainerframecolour = 0 + ncontextmenufontsize = 0 + ncss_tr_even_colour = 0 + ncss_tr_odd_colour = 0 + ndockable = 0 + nfiledefaultdynamicforecolour = 0 + nfileprgdynamicforecolour = 0 + nfilescxdynamicforecolour = 0 + nfilevcxdynamicforecolour = 0 + nformfontsize = 0 + njanitorreplacehistorydays = 0 + njanitorrundays = 0 + njanitorsearchhistorydays = 0 + nreplaceddynamicbackcolour = 0 + nreplacerisk = 0 + nrisk1dynamicbackcolour = 0 + nrisk2dynamicbackcolour = 0 + nrisk3dynamicbackcolour = 0 + nriskexceededdynamicbackcolour = 0 + nsearchboxfontsize = 0 + ntabstospaces = 0 + ntreesearchcolour = 0 + ntreeupdatecolour = 0 + ntreeviewfontsize = 8 + oform = .NULL. + ooptions = .NULL. + ShowTips = .T. + Top = 0 + Visible = .T. + Width = 652 + WindowType = 1 + _memberdata = + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * + + ADD OBJECT 'cmdCancel' AS commandbutton WITH ; + Anchor = 12, ; + Cancel = .T., ; + Caption = "Cancel", ; + Height = 21, ; + Left = 573, ; + Name = "cmdCancel", ; + TabIndex = 3, ; + Top = 576, ; + Width = 70 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'cmdOK' AS commandbutton WITH ; + Anchor = 12, ; + Caption = "Save Changes", ; + Height = 21, ; + Left = 460, ; + Name = "cmdOK", ; + TabIndex = 2, ; + Top = 576, ; + Width = 105 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'Gf_versionlabel1' AS gf_versionlabel WITH ; + Left = 415, ; + Name = "Gf_versionlabel1", ; + TabIndex = 4, ; + Top = 1 + *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="label" /> + + ADD OBJECT 'pfSettings' AS pageframe WITH ; + ActivePage = 1, ; + Anchor = 15, ; + ErasePage = .T., ; + Height = 556, ; + Left = 6, ; + Name = "pfSettings", ; + PageCount = 9, ; + TabIndex = 1, ; + TabStretch = 0, ; + TabStyle = 1, ; + Top = 15, ; + Width = 640, ; + Page1.Caption = "Column Selection", ; + Page1.Name = "pageColumns", ; + Page1.PageOrder = 2, ; + Page2.Caption = "Preferences", ; + Page2.Name = "pagePreferences", ; + Page2.PageOrder = 1, ; + Page3.Caption = "Advanced", ; + Page3.Name = "pageAdvanced", ; + Page3.PageOrder = 6, ; + Page4.Caption = "Replace", ; + Page4.Name = "pageReplace", ; + Page4.PageOrder = 3, ; + Page5.Caption = "Backups", ; + Page5.Name = "pageBackups", ; + Page5.PageOrder = 4, ; + Page6.Caption = "Janitor", ; + Page6.Name = "Page2", ; + Page6.PageOrder = 7, ; + Page7.Caption = "Colors", ; + Page7.Name = "pageColours", ; + Page7.PageOrder = 5, ; + Page8.Caption = "New in V6", ; + Page8.Name = "pageReferences", ; + Page8.PageOrder = 8, ; + Page9.Caption = "New in V7", ; + Page9.Name = "Page3", ; + Page9.PageOrder = 9 + *< END OBJECT: BaseClass="pageframe" /> + + ADD OBJECT 'pfSettings.Page2.Label1' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "# of days of Replace history to keep", ; + Height = 17, ; + Left = 105, ; + Name = "Label1", ; + TabIndex = 19, ; + Top = 131, ; + Width = 195 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page2.Label2' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "# of days of Search history to keep", ; + Height = 17, ; + Left = 105, ; + Name = "Label2", ; + TabIndex = 19, ; + Top = 93, ; + Width = 188 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page2.Label3' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "The janitor shows up regularly to clean up leftover files.", ; + FontSize = 9, ; + Height = 17, ; + Left = 28, ; + Name = "Label3", ; + TabIndex = 19, ; + Top = 20, ; + Width = 301 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page2.Label4' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "# of days between visits by the janitor", ; + Height = 17, ; + Left = 105, ; + Name = "Label4", ; + TabIndex = 19, ; + Top = 55, ; + Width = 204 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page2.Spinner1' AS spinner WITH ; + ControlSource = "Thisform.nJanitorSearchHistoryDays", ; + Height = 27, ; + KeyboardHighValue = 999999, ; + KeyboardLowValue = 0, ; + Left = 27, ; + Name = "Spinner1", ; + SpinnerHighValue = 999999.00, ; + SpinnerLowValue = 0.00, ; + TabIndex = 10, ; + Top = 88, ; + Width = 69 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.Page2.Spinner2' AS spinner WITH ; + ControlSource = "Thisform.nJanitorReplaceHistoryDays", ; + Height = 27, ; + KeyboardHighValue = 999999, ; + KeyboardLowValue = 0, ; + Left = 27, ; + Name = "Spinner2", ; + SpinnerHighValue = 999999.00, ; + SpinnerLowValue = 0.00, ; + TabIndex = 10, ; + Top = 126, ; + Width = 69 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.Page2.Spinner3' AS spinner WITH ; + ControlSource = "Thisform.nJanitorRunDays", ; + Height = 27, ; + KeyboardHighValue = 999999, ; + KeyboardLowValue = 0, ; + Left = 27, ; + Name = "Spinner3", ; + SpinnerHighValue = 999999.00, ; + SpinnerLowValue = 0.00, ; + TabIndex = 10, ; + Top = 50, ; + Width = 69 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings' AS pageframe WITH ; + ActivePage = 1, ; + Anchor = 15, ; + ErasePage = .T., ; + Height = 512, ; + Left = 6, ; + Name = "pfSettings", ; + PageCount = 2, ; + TabIndex = 1, ; + TabStretch = 0, ; + TabStyle = 1, ; + Top = 6, ; + Width = 628, ; + Page1.Caption = "General", ; + Page1.Name = "Page1", ; + Page2.Caption = "Custom UDFs", ; + Page2.Name = "Page2" + *< END OBJECT: BaseClass="pageframe" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.Check13' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "When editing, select the control where match is found", ; + ControlSource = "Thisform.oForm.lSelectControl", ; + Height = 17, ; + Left = 28, ; + Name = "Check13", ; + TabIndex = 14, ; + ToolTipText = 'This is not 100% reliable; if the control is not visible, it probably will not work. Also, in some circumstances, it may cause the "Save Changes" dialog even if nothing has changed.', ; + Top = 92, ; + Width = 310, ; + WordWrap = .F. + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.Check4' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Wildcard search across continuation lines", ; + ControlSource = "thisform.oForm.oSearchOptions.lWildCardContinuationLines", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 28, ; + Name = "Check4", ; + TabIndex = 6, ; + Top = 44, ; + Value = .T., ; + Width = 240, ; + ZOrderSet = 10 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.Check5' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Use Grep for faster directory searches", ; + ControlSource = "thisform.oForm.oSearchOptions.lOptimizeWithGrep", ; + FontBold = .F., ; + FontName = "Tahoma", ; + Height = 16, ; + Left = 28, ; + Name = "Check5", ; + TabIndex = 6, ; + Top = 68, ; + Value = .T., ; + Width = 226, ; + ZOrderSet = 10 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.cntContextMenu' AS container WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Height = 80, ; + Left = 405, ; + Name = "cntContextMenu", ; + Top = 11, ; + Width = 208 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.cntContextMenu.Check10' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Use system setting", ; + ControlSource = "Thisform.lUseSystemContextMenuFontsize", ; + Height = 17, ; + Left = 24, ; + Name = "Check10", ; + TabIndex = 14, ; + Top = 20, ; + Width = 124 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.cntContextMenu.Label3' AS label WITH ; + BackStyle = 0, ; + Caption = "GF font size", ; + Height = 18, ; + Left = 95, ; + Name = "Label3", ; + TabIndex = 18, ; + Top = 48, ; + Width = 142 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.cntContextMenu.spnContextMenu' AS spinner WITH ; + ControlSource = "Thisform.nContextMenuFontSize", ; + Height = 27, ; + KeyboardHighValue = 18, ; + KeyboardLowValue = 8, ; + Left = 26, ; + Name = "spnContextMenu", ; + SpinnerHighValue = 18.00, ; + SpinnerLowValue = 8.00, ; + TabIndex = 16, ; + Top = 44, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView' AS container WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Height = 186, ; + Left = 5, ; + Name = "contCodeView", ; + Top = 132, ; + Width = 613 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Check12' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Use IDE colors", ; + ControlSource = "Thisform.oForm.lIDEColorsInCodeView", ; + Height = 17, ; + Left = 109, ; + Name = "Check12", ; + TabIndex = 14, ; + Top = 20, ; + Width = 101 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Check5' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Highlight only match the line (instead of entire statement)", ; + ControlSource = "Thisform.oForm.lCodeViewSingleLine", ; + Height = 17, ; + Left = 109, ; + Name = "Check5", ; + TabIndex = 14, ; + Top = 44, ; + Width = 329 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.chkDarkMode' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Dark Mode", ; + ControlSource = "Thisform.oForm.lDarkModeInCodeView", ; + Height = 17, ; + Left = 241, ; + Name = "chkDarkMode", ; + TabIndex = 14, ; + Top = 20, ; + Width = 77 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.cmdZoomDefault' AS commandbutton WITH ; + AutoSize = .T., ; + Caption = "Default 14", ; + FontSize = 9, ; + Height = 27, ; + Left = 430, ; + Name = "cmdZoomDefault", ; + TabIndex = 22, ; + Top = 146, ; + Width = 74 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Command1' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 359, ; + Name = "Command1", ; + SpecialEffect = 0, ; + TabIndex = 2, ; + ToolTipText = "Pick colour", ; + Top = 73, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Container1' AS container WITH ; + BorderWidth = 3, ; + Height = 27, ; + Left = 399, ; + Name = "Container1", ; + Picture = ..\images\, ; + TabIndex = 3, ; + Top = 72, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Container1.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Label1' AS label WITH ; + Alignment = 1, ; + BackStyle = 0, ; + Caption = "Outline color for highllighted code (in Code View pane) and non-default checkboxes (above the grid)", ; + Height = 29, ; + Left = 49, ; + Name = "Label1", ; + TabIndex = 1, ; + Top = 69, ; + Width = 298, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Label5' AS label WITH ; + Alignment = 1, ; + BackStyle = 0, ; + Caption = "Maximum number of lines to be shown before the match line (normally only needed if auto-alignment fails)", ; + Height = 32, ; + Left = 38, ; + Name = "Label5", ; + TabIndex = 30, ; + ToolTipText = "Search will automatically stop once this number of mached lines it reached.", ; + Top = 108, ; + Width = 309, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Label7' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Code View pane font size (px)", ; + Height = 17, ; + Left = 184, ; + Name = "Label7", ; + TabIndex = 23, ; + Top = 152, ; + Width = 163 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Spinner4' AS spinner WITH ; + ControlSource = "Thisform.nBrowserFontSize", ; + Height = 27, ; + InputMask = "99", ; + KeyboardHighValue = 24, ; + KeyboardLowValue = 8, ; + Left = 360, ; + Name = "Spinner4", ; + SpinnerHighValue = 24.00, ; + SpinnerLowValue = 8.00, ; + TabIndex = 20, ; + Top = 147, ; + Value = 14, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contCodeView.Text1' AS textbox WITH ; + ControlSource = "Thisform.nCodeViewLinesBefore", ; + Height = 25, ; + InputMask = "9999999", ; + Left = 360, ; + Name = "Text1", ; + TabIndex = 29, ; + Top = 111, ; + Width = 59 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contMiscellaneous' AS container WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Height = 109, ; + Left = 6, ; + Name = "contMiscellaneous", ; + Top = 346, ; + Width = 613 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contMiscellaneous.Check1' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Show bar numbers for Prompt field in menus", ; + ControlSource = "Thisform.oSearchOptions.lShowMenuBarNumbers", ; + Height = 17, ; + Left = 109, ; + Name = "Check1", ; + TabIndex = 14, ; + Top = 69, ; + Width = 264 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contMiscellaneous.Check10' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = 'Show relative path in column "File Name with Path"', ; + ControlSource = "Thisform.oForm.lShowRelativePath", ; + Height = 17, ; + Left = 109, ; + Name = "Check10", ; + TabIndex = 14, ; + Top = 21, ; + Width = 296 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.contMiscellaneous.Check11' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Sort projects & folders in Scope dropdown", ; + ControlSource = "Thisform.oForm.lSortScopeDropdown", ; + Height = 17, ; + Left = 109, ; + Name = "Check11", ; + TabIndex = 14, ; + Top = 45, ; + Width = 248 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.Label1' AS label WITH ; + Anchor = 10, ; + AutoSize = .T., ; + BackColor = 255,255,255, ; + Caption = " Miscellaneous: ", ; + FontBold = .T., ; + Height = 17, ; + Left = 43, ; + Name = "Label1", ; + TabIndex = 7, ; + Top = 339, ; + Width = 105 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.Label2' AS label WITH ; + Anchor = 10, ; + AutoSize = .T., ; + BackColor = 255,255,255, ; + Caption = " Code View pane: ", ; + FontBold = .T., ; + Height = 17, ; + Left = 43, ; + Name = "Label2", ; + TabIndex = 7, ; + Top = 125, ; + Width = 114 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.Label3' AS label WITH ; + Anchor = 10, ; + AutoSize = .T., ; + BackColor = 255,255,255, ; + Caption = " Context Menu Font Size: ", ; + FontBold = .T., ; + Height = 17, ; + Left = 427, ; + Name = "Label3", ; + TabIndex = 7, ; + Top = 6, ; + Width = 155 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.Label5' AS label WITH ; + BackStyle = 0, ; + Caption = "Default font size", ; + Height = 18, ; + Left = 84, ; + Name = "Label5", ; + TabIndex = 18, ; + Top = 13, ; + Width = 97 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.lblChangeFontSize' AS label WITH ; + Anchor = 8, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Changing the default font size does not take effect until you restart GoFish", ; + FontBold = .T., ; + ForeColor = 255,0,0, ; + Height = 17, ; + Left = 198, ; + Name = "lblChangeFontSize", ; + ToolTipText = "", ; + Top = 462, ; + Width = 418 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page1.Spinner8' AS spinner WITH ; + ControlSource = "Thisform.nFormFontSize", ; + Height = 27, ; + KeyboardHighValue = 16, ; + KeyboardLowValue = 8, ; + Left = 19, ; + Name = "Spinner8", ; + SpinnerHighValue = 16.00, ; + SpinnerLowValue = 8.00, ; + TabIndex = 16, ; + ToolTipText = "The default font size applies to all controls on all GF forms (except for those few below).", ; + Top = 8, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.cmdBrowse' AS commandbutton WITH ; + Anchor = 0, ; + AutoSize = .T., ; + Caption = "Select UDF", ; + FontBold = .F., ; + FontSize = 9, ; + Height = 27, ; + Left = 12, ; + Name = "cmdBrowse", ; + Picture = ..\images\, ; + ToolTipText = 'If "Custom UDF" is selected for Scope ...', ; + Top = 47, ; + Width = 80 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.cmdEdit' AS commandbutton WITH ; + AutoSize = .T., ; + Caption = "Edit UDF", ; + FontSize = 9, ; + Height = 27, ; + Left = 96, ; + Name = "cmdEdit", ; + Picture = ..\images\, ; + Top = 47, ; + Width = 67 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.cmdEditSettings' AS commandbutton WITH ; + AutoSize = .T., ; + Caption = "Edit UDF", ; + FontSize = 9, ; + Height = 27, ; + Left = 96, ; + Name = "cmdEditSettings", ; + Picture = ..\images\, ; + Top = 133, ; + Width = 67 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.cmdGotoFAQ' AS commandbutton WITH ; + Anchor = 0, ; + AutoSize = .T., ; + Caption = "Go to FAQ", ; + FontBold = .F., ; + FontSize = 9, ; + Height = 27, ; + Left = 392, ; + Name = "cmdGotoFAQ", ; + Picture = ..\images\, ; + ToolTipText = "", ; + Top = 17, ; + Width = 73 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.cmdSettingsUDF' AS commandbutton WITH ; + Anchor = 0, ; + AutoSize = .T., ; + Caption = "Select UDF", ; + FontBold = .F., ; + FontSize = 9, ; + Height = 27, ; + Left = 12, ; + Name = "cmdSettingsUDF", ; + Picture = ..\images\, ; + ToolTipText = 'If "Custom UDF" is selected for Scope ...', ; + Top = 133, ; + Width = 80 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.Label1' AS label WITH ; + AutoSize = .T., ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + Caption = "For modifying search options (run by right-clicking or ctrl-clicking on 'Advanced'.)", ; + FontSize = 9, ; + Height = 17, ; + Left = 93, ; + Name = "Label1", ; + TabIndex = 4, ; + Top = 109, ; + Width = 435 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.Label2' AS label WITH ; + AutoSize = .T., ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + Caption = "Options UDF:", ; + FontBold = .T., ; + FontSize = 9, ; + Height = 17, ; + Left = 12, ; + Name = "Label2", ; + TabIndex = 4, ; + Top = 109, ; + Width = 74 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.Label3' AS label WITH ; + AutoSize = .T., ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + Caption = "Scope UDF:", ; + FontBold = .T., ; + FontSize = 9, ; + Height = 17, ; + Left = 10, ; + Name = "Label3", ; + TabIndex = 4, ; + Top = 23, ; + Width = 66 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.Label4' AS label WITH ; + AutoSize = .T., ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + Caption = "For generating scope cursor (of files to be searched):", ; + FontSize = 9, ; + Height = 17, ; + Left = 91, ; + Name = "Label4", ; + TabIndex = 4, ; + Top = 23, ; + Width = 292 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.txtCustomUDF' AS textbox WITH ; + Anchor = 10, ; + ControlSource = "Thisform.oForm.cCustomScopeUDFFileName", ; + Enabled = .F., ; + FontBold = .F., ; + FontItalic = .F., ; + FontName = "Courier New", ; + FontSize = 9, ; + Height = 23, ; + Left = 167, ; + Name = "txtCustomUDF", ; + Top = 48, ; + Width = 442 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'pfSettings.Page3.pfSettings.Page2.txtSettingsUDF' AS textbox WITH ; + Anchor = 10, ; + ControlSource = "Thisform.oForm.cSearchOptionsUDFFileName", ; + Enabled = .F., ; + FontBold = .F., ; + FontItalic = .F., ; + FontName = "Courier New", ; + FontSize = 9, ; + Height = 23, ; + Left = 167, ; + Name = "txtSettingsUDF", ; + Top = 134, ; + Width = 442 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Check1' AS checkbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "Delete Storage", ; + ControlSource = "Thisform.lDeleteStorage", ; + Height = 17, ; + Left = 23, ; + Name = "Check1", ; + TabIndex = 19, ; + Top = 400, ; + Value = .F., ; + Width = 100, ; + WordWrap = .T. + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageAdvanced.cmdDeleteConfigFiles' AS commandbutton WITH ; + Caption = "Delete config files!", ; + Height = 21, ; + Left = 23, ; + Name = "cmdDeleteConfigFiles", ; + TabIndex = 17, ; + Top = 364, ; + Width = 114 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageAdvanced.cmdOpenFolder' AS commandbutton WITH ; + Caption = "Open Folder", ; + Height = 21, ; + Left = 25, ; + Name = "cmdOpenFolder", ; + TabIndex = 16, ; + Top = 309, ; + Width = 80 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Label1' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "Configuration settings for GoFish are maintained in these XML files. See GoFish Help for more information.", ; + Height = 32, ; + Left = 255, ; + Name = "Label1", ; + TabIndex = 2, ; + Top = 20, ; + Width = 351, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Label11' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "Wipes all stored searches and replace backup on exit of the form. ", ; + ForeColor = 255,0,0, ; + Height = 21, ; + Left = 142, ; + Name = "Label11", ; + TabIndex = 20, ; + Top = 401, ; + Width = 598, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Label2' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "Axtive path to XML files:", ; + Height = 25, ; + Left = 12, ; + Name = "Label2", ; + TabIndex = 14, ; + Top = 271, ; + Width = 320, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Label3' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "Path to XML files will be shown here. See Init() method of this form", ; + Height = 32, ; + Left = 23, ; + Name = "Label3", ; + TabIndex = 15, ; + Top = 289, ; + Width = 598, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Label4' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "Double-Click to view or edit any file.", ; + Height = 32, ; + Left = 255, ; + Name = "Label4", ; + TabIndex = 5, ; + Top = 137, ; + Width = 351, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Label5' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "Close GoFish and delete any file to restore that portion of GoFish to the default state. A new XML file will be built automatically.", ; + Height = 32, ; + Left = 255, ; + Name = "Label5", ; + TabIndex = 6, ; + Top = 176, ; + Width = 351, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Label6' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "The files are maintained automatically by GoFish to maintain settings between sessions.", ; + Height = 32, ; + Left = 255, ; + Name = "Label6", ; + TabIndex = 3, ; + Top = 59, ; + Width = 351, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Label7' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "If you are curious you may view these files, or if you have special needs you may edit them.", ; + Height = 32, ; + Left = 255, ; + Name = "Label7", ; + TabIndex = 4, ; + Top = 98, ; + Width = 351, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageAdvanced.Label8' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = ("Immediately reset GoFish by deleting it's config files."+0h0D0A+"New config files will be built upon exit."), ; + ForeColor = 255,0,0, ; + Height = 31, ; + Left = 142, ; + Name = "Label8", ; + TabIndex = 18, ; + Top = 360, ; + Width = 452, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageAdvanced.List1' AS listbox WITH ; + Height = 200, ; + Left = 12, ; + Name = "List1", ; + RowSourceType = 7, ; + TabIndex = 1, ; + Top = 17, ; + Width = 236 + *< END OBJECT: BaseClass="listbox" /> + + ADD OBJECT 'pfSettings.pageBackups.Check1' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Backup source files when performing Replace operations.", ; + ControlSource = "Thisform.oSearchOptions.lBackup", ; + Height = 17, ; + Left = 18, ; + Name = "Check1", ; + Top = 119, ; + Value = .F., ; + Width = 336 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageBackups.Command2' AS commandbutton WITH ; + Caption = "Open Folder", ; + Height = 21, ; + Left = 132, ; + Name = "Command2", ; + Top = 220, ; + Width = 80 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageBackups.Label1' AS label WITH ; + BackStyle = 0, ; + Caption = "GoFish can create backups of files on which you perform a Replace operation. The backup files are stored in the folder path Home(7) \ GoFishBackps \ \ where is the Replace History Id that is assigned to each replace operation.", ; + Height = 45, ; + Left = 18, ; + Name = "Label1", ; + Top = 18, ; + Width = 600, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageBackups.Label2' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "See the GoFish Backup Help page for more info.", ; + FontUnderline = .T., ; + ForeColor = 0,0,255, ; + Height = 17, ; + Left = 51, ; + MousePointer = 15, ; + Name = "Label2", ; + Top = 152, ; + Width = 266 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageBackups.Label3' AS label WITH ; + BackStyle = 0, ; + Caption = "You can map the folder reference to the Replace History log to view complete details of each replace operation.", ; + Height = 45, ; + Left = 18, ; + Name = "Label3", ; + Top = 73, ; + Width = 600, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageBackups.Label4' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "Path to Backup files:", ; + Height = 25, ; + Left = 15, ; + Name = "Label4", ; + Top = 224, ; + Width = 320, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageBackups.Label5' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "Path to backup files will be shown here. See Init() method of this label.", ; + Height = 32, ; + Left = 26, ; + Name = "Label5", ; + Top = 248, ; + Width = 598, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Command1' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command1", ; + SpecialEffect = 0, ; + TabIndex = 2, ; + ToolTipText = "Pick colour", ; + Top = 13, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command10' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command10", ; + SpecialEffect = 0, ; + TabIndex = 29, ; + ToolTipText = "Pick colour", ; + Top = 365, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command11' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command11", ; + SpecialEffect = 0, ; + TabIndex = 32, ; + ToolTipText = "Pick colour", ; + Top = 395, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command12' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command12", ; + SpecialEffect = 0, ; + TabIndex = 35, ; + ToolTipText = "Pick colour", ; + Top = 425, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command13' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command13", ; + SpecialEffect = 0, ; + TabIndex = 38, ; + ToolTipText = "Pick colour", ; + Top = 455, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command14' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command14", ; + SpecialEffect = 0, ; + TabIndex = 23, ; + ToolTipText = "Pick colour", ; + Top = 260, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command2' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command2", ; + SpecialEffect = 0, ; + TabIndex = 5, ; + ToolTipText = "Pick colour", ; + Top = 53, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command3' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command3", ; + SpecialEffect = 0, ; + TabIndex = 8, ; + ToolTipText = "Pick colour", ; + Top = 83, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command4' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command4", ; + SpecialEffect = 0, ; + TabIndex = 11, ; + ToolTipText = "Pick colour", ; + Top = 113, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command5' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command5", ; + SpecialEffect = 0, ; + TabIndex = 14, ; + ToolTipText = "Pick colour", ; + Top = 143, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command6' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command6", ; + SpecialEffect = 0, ; + TabIndex = 17, ; + ToolTipText = "Pick colour", ; + Top = 200, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command7' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command7", ; + SpecialEffect = 0, ; + TabIndex = 20, ; + ToolTipText = "Pick colour", ; + Top = 230, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command8' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command8", ; + SpecialEffect = 0, ; + TabIndex = 23, ; + ToolTipText = "Pick colour", ; + Top = 290, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Command9' AS commandbutton WITH ; + Caption = ". . .", ; + FontBold = .T., ; + Height = 25, ; + Left = 350, ; + Name = "Command9", ; + SpecialEffect = 0, ; + TabIndex = 26, ; + ToolTipText = "Pick colour", ; + Top = 320, ; + Width = 25 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColours.Container1' AS container WITH ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container1", ; + Picture = ..\images\, ; + TabIndex = 3, ; + Top = 9, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container1.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container10' AS container WITH ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container10", ; + Picture = ..\images\, ; + TabIndex = 30, ; + Top = 365, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container10.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container11' AS container WITH ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container11", ; + Picture = ..\images\, ; + TabIndex = 33, ; + Top = 395, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container11.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container12' AS container WITH ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container12", ; + Picture = ..\images\, ; + TabIndex = 36, ; + Top = 425, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container12.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container13' AS container WITH ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container13", ; + Picture = ..\images\, ; + TabIndex = 39, ; + Top = 455, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container13.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container14' AS container WITH ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container14", ; + Picture = ..\images\, ; + TabIndex = 24, ; + Top = 260, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container14.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container15' AS container WITH ; + BackStyle = 0, ; + Height = 128, ; + Left = 43, ; + Name = "Container15", ; + Top = 48, ; + Width = 530 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container16' AS container WITH ; + BackStyle = 0, ; + Height = 161, ; + Left = 43, ; + Name = "Container16", ; + Top = 191, ; + Width = 530 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container17' AS container WITH ; + BackStyle = 0, ; + Height = 131, ; + Left = 43, ; + Name = "Container17", ; + Top = 359, ; + Width = 530 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container2' AS container WITH ; + BackColor = 255,255,255, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container2", ; + Picture = ..\images\, ; + TabIndex = 6, ; + Top = 53, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container2.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container3' AS container WITH ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container3", ; + Picture = ..\images\, ; + TabIndex = 9, ; + Top = 83, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container3.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container4' AS container WITH ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container4", ; + Picture = ..\images\, ; + TabIndex = 12, ; + Top = 113, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container4.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container5' AS container WITH ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container5", ; + Picture = ..\images\, ; + TabIndex = 15, ; + Top = 143, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container5.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container6' AS container WITH ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container6", ; + Picture = ..\images\, ; + TabIndex = 18, ; + Top = 200, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container6.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container7' AS container WITH ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container7", ; + Picture = ..\images\, ; + TabIndex = 21, ; + Top = 230, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container7.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container8' AS container WITH ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container8", ; + Picture = ..\images\, ; + TabIndex = 24, ; + Top = 290, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container8.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Container9' AS container WITH ; + BackStyle = 1, ; + BorderWidth = 2, ; + Height = 27, ; + Left = 406, ; + Name = "Container9", ; + Picture = ..\images\, ; + TabIndex = 27, ; + Top = 320, ; + Width = 129 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColours.Container9.lblExample1' AS label WITH ; + BackStyle = 0, ; + Caption = "Example", ; + Height = 17, ; + Left = 8, ; + Name = "lblExample1", ; + TabIndex = 1, ; + ToolTipText = "Highlighting several frames.", ; + Top = 6, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label1' AS label WITH ; + BackStyle = 0, ; + Caption = "Outline color for highllighted code (in Code View pane) and non-default checkboxes (above the grid)", ; + Height = 29, ; + Left = 51, ; + Name = "Label1", ; + TabIndex = 1, ; + Top = 9, ; + Width = 280, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label10' AS label WITH ; + Alignment = 1, ; + BackStyle = 0, ; + Caption = "Tree ForeColor during search", ; + Height = 17, ; + Left = 97, ; + Name = "Label10", ; + TabIndex = 28, ; + Top = 370, ; + Width = 244 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label11' AS label WITH ; + Alignment = 1, ; + BackStyle = 0, ; + Caption = 'Tree ForeColor "Not Found"', ; + Height = 17, ; + Left = 81, ; + Name = "Label11", ; + TabIndex = 31, ; + Top = 400, ; + Width = 260 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label12' AS label WITH ; + Alignment = 1, ; + BackStyle = 0, ; + Caption = "View in Browser: Even rows", ; + Height = 17, ; + Left = 81, ; + Name = "Label12", ; + TabIndex = 34, ; + Top = 430, ; + Width = 260 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label13' AS label WITH ; + Alignment = 1, ; + BackStyle = 0, ; + Caption = "View in Browser: Odd rows", ; + Height = 17, ; + Left = 81, ; + Name = "Label13", ; + TabIndex = 37, ; + Top = 460, ; + Width = 260 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label14' AS label WITH ; + Alignment = 1, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = 'Risk "1 = Pretty Safe"', ; + Height = 17, ; + Left = 225, ; + Name = "Label14", ; + TabIndex = 22, ; + Top = 265, ; + Width = 116 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label15' AS label WITH ; + BackStyle = 0, ; + Caption = "Grid ForeColor:", ; + FontBold = .T., ; + Height = 17, ; + Left = 90, ; + Name = "Label15", ; + TabIndex = 4, ; + Top = 58, ; + Width = 95 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label16' AS label WITH ; + AutoSize = .F., ; + BackStyle = 0, ; + Caption = "Grid BackColor (Replace Mode):", ; + FontBold = .T., ; + Height = 34, ; + Left = 86, ; + Name = "Label16", ; + TabIndex = 4, ; + Top = 203, ; + Width = 99, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label17' AS label WITH ; + BackStyle = 0, ; + Caption = "Miscellaneous", ; + FontBold = .T., ; + Height = 17, ; + Left = 63, ; + Name = "Label17", ; + TabIndex = 4, ; + Top = 367, ; + Width = 88 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label2' AS label WITH ; + Alignment = 1, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = '"SCX"', ; + Height = 17, ; + Left = 301, ; + Name = "Label2", ; + TabIndex = 4, ; + Top = 58, ; + Width = 34 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label3' AS label WITH ; + Alignment = 1, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = '"VCX"', ; + Height = 17, ; + Left = 302, ; + Name = "Label3", ; + TabIndex = 7, ; + Top = 88, ; + Width = 33 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label4' AS label WITH ; + Alignment = 1, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = '"PRG"', ; + Height = 17, ; + Left = 299, ; + Name = "Label4", ; + TabIndex = 10, ; + Top = 118, ; + Width = 36 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label5' AS label WITH ; + Alignment = 1, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "All others", ; + Height = 17, ; + Left = 282, ; + Name = "Label5", ; + TabIndex = 13, ; + Top = 148, ; + Width = 53 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label6' AS label WITH ; + Alignment = 1, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = '"Replaced"', ; + Height = 17, ; + Left = 278, ; + Name = "Label6", ; + TabIndex = 16, ; + Top = 205, ; + Width = 63 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label7' AS label WITH ; + Alignment = 1, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = 'Risk "Exceeds Limit"', ; + Height = 17, ; + Left = 226, ; + Name = "Label7", ; + TabIndex = 19, ; + Top = 235, ; + Width = 115 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label8' AS label WITH ; + Alignment = 1, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = 'Risk "2 = Kinda Safe"', ; + Height = 17, ; + Left = 223, ; + Name = "Label8", ; + TabIndex = 22, ; + Top = 295, ; + Width = 118 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColours.Label9' AS label WITH ; + Alignment = 1, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = 'Risk "3 = Dangerous"', ; + Height = 17, ; + Left = 221, ; + Name = "Label9", ; + TabIndex = 25, ; + Top = 325, ; + Width = 120 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageColumns.cmdClearAll' AS commandbutton WITH ; + Caption = "Clear All", ; + FontSize = 9, ; + Height = 26, ; + Left = 21, ; + Name = "cmdClearAll", ; + TabIndex = 4, ; + Top = 140, ; + Width = 66 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColumns.cmdDefault' AS commandbutton WITH ; + BackColor = 255,255,255, ; + Caption = "Default", ; + FontSize = 9, ; + Height = 26, ; + Left = 21, ; + Name = "cmdDefault", ; + TabIndex = 2, ; + Themes = .F., ; + ToolTipText = "Set all default on; all other off.", ; + Top = 56, ; + Width = 66 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColumns.cmdSelectAll' AS commandbutton WITH ; + Caption = "Select All", ; + FontSize = 9, ; + Height = 26, ; + Left = 21, ; + Name = "cmdSelectAll", ; + TabIndex = 3, ; + Top = 98, ; + Width = 66 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageColumns.containerColumnCheckBoxes' AS container WITH ; + Anchor = 5, ; + Height = 440, ; + Left = 14, ; + Name = "containerColumnCheckBoxes", ; + TabIndex = 5, ; + Top = 46, ; + Width = 602 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageColumns.Label1' AS label WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Caption = "Choose which columns you want to appear in the search results grid.", ; + FontBold = .T., ; + Height = 28, ; + Left = 15, ; + Name = "Label1", ; + TabIndex = 1, ; + Top = 14, ; + Width = 472, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.cboDockable' AS combobox WITH ; + BoundColumn = 2, ; + BoundTo = .T., ; + ColumnCount = 2, ; + ColumnWidths = "300,0", ; + ControlSource = "Thisform.nDockable", ; + Height = 22, ; + Left = 79, ; + Name = "cboDockable", ; + RowSource = "0 - Does not support docking,0,1 - Supports docking and is dockable,1,2 - Supports docking and is not dockable,2", ; + RowSourceType = 1, ; + Style = 2, ; + TabIndex = 2, ; + Top = 11, ; + Width = 305 + *< END OBJECT: BaseClass="combobox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check1' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Display dialog when files cannot be found or opened during a search or replace", ; + ControlSource = "Thisform.oSearchOptions.lShowErrorMessages", ; + Height = 17, ; + Left = 27, ; + Name = "Check1", ; + TabIndex = 5, ; + Top = 68, ; + Width = 452 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check10' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = 'Show relative path in column "File Name with Path"', ; + ControlSource = "Thisform.oForm.lShowRelativePath", ; + Height = 17, ; + Left = 320, ; + Name = "Check10", ; + TabIndex = 14, ; + Top = 216, ; + Width = 296 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check11' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Sort projects & folders in Scope dropdown", ; + ControlSource = "Thisform.oForm.lSortScopeDropdown", ; + Height = 17, ; + Left = 320, ; + Name = "Check11", ; + TabIndex = 14, ; + Top = 195, ; + Width = 248 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check12' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Use IDE colors in Code View pane", ; + ControlSource = "Thisform.oForm.lIDEColorsInCodeView", ; + Height = 17, ; + Left = 320, ; + Name = "Check12", ; + TabIndex = 14, ; + Top = 174, ; + Width = 207 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check13' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .F., ; + BackStyle = 0, ; + Caption = "When editing, select the control in which text is found (v7)", ; + ControlSource = "Thisform.oForm.lSelectControl", ; + Height = 30, ; + Left = 320, ; + Name = "Check13", ; + TabIndex = 14, ; + ToolTipText = 'This is not 100% reliable; if the control is not visible, it probably will not work. Also, in some circumstances, it may cause the "Save Changes" dialog even if nothing has changed.', ; + Top = 256, ; + Width = 268, ; + WordWrap = .T. + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check2' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Display each filename as it is processed", ; + ControlSource = "Thisform.oSearchOptions.lShowWaitMessages", ; + Height = 17, ; + Left = 27, ; + Name = "Check2", ; + TabIndex = 7, ; + Top = 108, ; + Width = 241 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check3' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Display dialog box if no matches are found during a search.", ; + ControlSource = "Thisform.oSearchOptions.lShowNoMatchesMessage", ; + Height = 17, ; + Left = 27, ; + Name = "Check3", ; + TabIndex = 6, ; + Top = 88, ; + Width = 342 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check4' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Set scope to Active Project / Current Directory", ; + ControlSource = "Thisform.lCR_OpenMode", ; + Height = 17, ; + Left = 34, ; + Name = "Check4", ; + TabIndex = 1, ; + ToolTipText = "", ; + Top = 195, ; + Width = 262 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check5' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Code View pane highlights only match line", ; + ControlSource = "Thisform.oForm.lCodeViewSingleLine", ; + Height = 17, ; + Left = 320, ; + Name = "Check5", ; + TabIndex = 14, ; + ToolTipText = "... instead of the entire statement", ; + Top = 237, ; + Width = 250 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check6' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Always confirm use of Whole Word search", ; + ControlSource = "Thisform.lWarnWholeWord", ; + Height = 17, ; + Left = 27, ; + Name = "Check6", ; + TabIndex = 8, ; + Top = 129, ; + Width = 248 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check7' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Restore previous search results", ; + ControlSource = "Thisform.lRestorePreviousSearchResultsOnStartup", ; + Height = 17, ; + Left = 34, ; + Name = "Check7", ; + TabIndex = 13, ; + Top = 216, ; + Width = 194 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check8' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Save all search results to search history folder.", ; + ControlSource = "Thisform.lSaveSearchResults", ; + Height = 17, ; + Left = 18, ; + Name = "Check8", ; + TabIndex = 11, ; + Top = 237, ; + Width = 273 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.Check9' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Open code windows at top left corner", ; + ControlSource = "Thisform.lMoveNewCodeToTopLeft", ; + Height = 17, ; + Left = 18, ; + Name = "Check9", ; + TabIndex = 14, ; + Top = 258, ; + Width = 220 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.chkDesktop' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Desktop", ; + ControlSource = "Thisform.lDesktop", ; + Height = 17, ; + Left = 401, ; + Name = "chkDesktop", ; + TabIndex = 3, ; + Top = 14, ; + Width = 64 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous' AS container WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Height = 105, ; + Left = 13, ; + Name = "contMiscellaneous", ; + Top = 300, ; + Width = 613 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.cmdZoomDefault' AS commandbutton WITH ; + AutoSize = .T., ; + Caption = "Default 14", ; + FontSize = 9, ; + Height = 27, ; + Left = 245, ; + Name = "cmdZoomDefault", ; + TabIndex = 22, ; + Top = 71, ; + Width = 74 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Label11' AS label WITH ; + BackStyle = 0, ; + Caption = "Combobox font size", ; + Height = 18, ; + Left = 255, ; + Name = "Label11", ; + TabIndex = 18, ; + Top = 46, ; + Width = 114 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Label2' AS label WITH ; + BackStyle = 0, ; + Caption = "Grid font size", ; + Height = 18, ; + Left = 73, ; + Name = "Label2", ; + TabIndex = 18, ; + Top = 46, ; + Width = 79 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Label5' AS label WITH ; + BackStyle = 0, ; + Caption = "Default font size", ; + Height = 18, ; + Left = 73, ; + Name = "Label5", ; + TabIndex = 18, ; + Top = 15, ; + Width = 97 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Label7' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Code View pane font size (px)", ; + Height = 17, ; + Left = 73, ; + Name = "Label7", ; + TabIndex = 23, ; + Top = 77, ; + Width = 163 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Label8' AS label WITH ; + BackStyle = 0, ; + Caption = "TreeView font size", ; + Height = 18, ; + Left = 461, ; + Name = "Label8", ; + TabIndex = 19, ; + Top = 47, ; + Width = 103 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Label9' AS label WITH ; + BackStyle = 0, ; + Caption = "Tabs to spaces", ; + Height = 18, ; + Left = 408, ; + Name = "Label9", ; + TabIndex = 24, ; + Top = 78, ; + Width = 103 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.lblChangeFontSize' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Changing the default font size does not take effect until you restart GoFish", ; + FontBold = .T., ; + ForeColor = 255,0,0, ; + Height = 17, ; + Left = 174, ; + Name = "lblChangeFontSize", ; + ToolTipText = "", ; + Top = 15, ; + Width = 418 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Spinner1' AS spinner WITH ; + ControlSource = "Thisform.nGridFontSize", ; + Height = 27, ; + KeyboardHighValue = 24, ; + KeyboardLowValue = 6, ; + Left = 8, ; + Name = "Spinner1", ; + SpinnerHighValue = 24.00, ; + SpinnerLowValue = 6.00, ; + TabIndex = 16, ; + Top = 41, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Spinner4' AS spinner WITH ; + ControlSource = "Thisform.nBrowserFontSize", ; + Height = 27, ; + InputMask = "99", ; + KeyboardHighValue = 24, ; + KeyboardLowValue = 8, ; + Left = 8, ; + Name = "Spinner4", ; + SpinnerHighValue = 24.00, ; + SpinnerLowValue = 8.00, ; + TabIndex = 20, ; + Top = 72, ; + Value = 14, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Spinner5' AS spinner WITH ; + ControlSource = "Thisform.nTreeViewFontSize", ; + Height = 27, ; + KeyboardHighValue = 24, ; + KeyboardLowValue = 6, ; + Left = 396, ; + Name = "Spinner5", ; + SpinnerHighValue = 24.00, ; + SpinnerLowValue = 6.00, ; + TabIndex = 17, ; + Top = 42, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Spinner6' AS spinner WITH ; + ControlSource = "Thisform.nTabsToSpaces", ; + Height = 27, ; + KeyboardHighValue = 10, ; + KeyboardLowValue = 0, ; + Left = 343, ; + Name = "Spinner6", ; + SpinnerHighValue = 10.00, ; + SpinnerLowValue = 0.00, ; + TabIndex = 21, ; + Top = 73, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Spinner7' AS spinner WITH ; + ControlSource = "Thisform.nSearchBoxFontSize", ; + Height = 27, ; + KeyboardHighValue = 24, ; + KeyboardLowValue = 6, ; + Left = 190, ; + Name = "Spinner7", ; + SpinnerHighValue = 24.00, ; + SpinnerLowValue = 6.00, ; + TabIndex = 16, ; + Top = 41, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.pagePreferences.contMiscellaneous.Spinner8' AS spinner WITH ; + ControlSource = "Thisform.nFormFontSize", ; + Height = 27, ; + KeyboardHighValue = 16, ; + KeyboardLowValue = 8, ; + Left = 8, ; + Name = "Spinner8", ; + SpinnerHighValue = 16.00, ; + SpinnerLowValue = 8.00, ; + TabIndex = 16, ; + ToolTipText = "The default font size applies to all controls on all GF forms (except for those few below).", ; + Top = 10, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.pagePreferences.Label1' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Dockable", ; + Height = 17, ; + Left = 21, ; + Name = "Label1", ; + TabIndex = 1, ; + Top = 14, ; + Width = 54 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.Label10' AS label WITH ; + BackStyle = 0, ; + Caption = "At startup:", ; + Height = 18, ; + Left = 19, ; + Name = "Label10", ; + TabIndex = 18, ; + Top = 176, ; + Width = 103 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.Label2' AS label WITH ; + AutoSize = .T., ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + Caption = " Font Sizes", ; + Height = 17, ; + Left = 41, ; + Name = "Label2", ; + TabIndex = 4, ; + Top = 292, ; + Width = 68 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.Label3' AS label WITH ; + BackStyle = 0, ; + Caption = "DisplayCount for Search/Scope history dropdowns", ; + Height = 18, ; + Left = 86, ; + Name = "Label3", ; + TabIndex = 26, ; + Top = 420, ; + Width = 311 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.Label4' AS label WITH ; + AutoSize = .T., ; + BackColor = 255,255,255, ; + BackStyle = 1, ; + Caption = " Messages / Dialogs ", ; + Height = 17, ; + Left = 33, ; + Name = "Label4", ; + TabIndex = 4, ; + Top = 46, ; + Width = 127 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.Label6' AS label WITH ; + BackStyle = 0, ; + Caption = "Number of items in each MRU list for Search/Scope dropdowns", ; + Height = 18, ; + Left = 86, ; + Name = "Label6", ; + TabIndex = 28, ; + Top = 451, ; + Width = 396 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pagePreferences.Shape1' AS shape WITH ; + BackStyle = 0, ; + Curvature = 3, ; + Height = 102, ; + Left = 17, ; + Name = "Shape1", ; + Top = 54, ; + Width = 534 + *< END OBJECT: BaseClass="shape" /> + + ADD OBJECT 'pfSettings.pagePreferences.Spinner2' AS spinner WITH ; + ControlSource = "Thisform.nDropDownDisplayCount", ; + Height = 27, ; + KeyboardHighValue = 100, ; + KeyboardLowValue = 5, ; + Left = 21, ; + Name = "Spinner2", ; + SpinnerHighValue = 100.00, ; + SpinnerLowValue = 5.00, ; + TabIndex = 25, ; + Top = 415, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.pagePreferences.Spinner3' AS spinner WITH ; + ControlSource = "Thisform.nDropDownMaxMRU", ; + Height = 27, ; + KeyboardHighValue = 100, ; + KeyboardLowValue = 1, ; + Left = 21, ; + Name = "Spinner3", ; + SpinnerHighValue = 100.00, ; + SpinnerLowValue = 1.00, ; + TabIndex = 27, ; + Top = 446, ; + Width = 59 + *< END OBJECT: BaseClass="spinner" /> + + ADD OBJECT 'pfSettings.pageReferences.Check1' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "At startup, set scope to Active Project / Current Directory.", ; + ControlSource = "Thisform.lCR_OpenMode", ; + Height = 17, ; + Left = 36, ; + Name = "Check1", ; + TabIndex = 1, ; + ToolTipText = "", ; + Top = 10, ; + Width = 321 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageReferences.Check3' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Filter the search expression dropdown to only show searches from the current scope.", ; + ControlSource = "Thisform.lCR_SearchComboPerScope", ; + Height = 17, ; + Left = 36, ; + Name = "Check3", ; + TabIndex = 3, ; + Top = 33, ; + Width = 483 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageReferences.chk_CRMode' AS checkbox WITH ; + Alignment = 0, ; + BackStyle = 0, ; + Caption = "Enable some UI features similar to those in Code References (CR)", ; + ControlSource = "Thisform.lCR_Allow", ; + FontBold = .T., ; + Height = 17, ; + Left = 36, ; + Name = "chk_CRMode", ; + TabIndex = 8, ; + Top = 153, ; + Width = 466, ; + WordWrap = .T. + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1' AS container WITH ; + BackStyle = 0, ; + Height = 295, ; + Left = 13, ; + Name = "Container1", ; + Top = 174, ; + Width = 606 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Check2' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Filter search history in Treeview to current scope.", ; + ControlSource = "Thisform.lCR_HistoryPerScope", ; + Height = 17, ; + Left = 52, ; + Name = "Check2", ; + TabIndex = 2, ; + Top = 219, ; + Width = 284 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Check4' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Show search history in TreeView", ; + ControlSource = "Thisform.lCR_HistoryTree", ; + Height = 17, ; + Left = 36, ; + Name = "Check4", ; + TabIndex = 4, ; + Top = 196, ; + Width = 196 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Check7' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Fill all searches with data on startup. (sloow)", ; + ControlSource = "Thisform.lCR_HistoryTreeAuto", ; + Height = 17, ; + Left = 52, ; + Name = "Check7", ; + TabIndex = 5, ; + Top = 265, ; + Width = 262 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Check8' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Sort search history in TreeView alphabetically", ; + ControlSource = "Thisform.lCR_SortTreeAlpha", ; + Height = 17, ; + Left = 52, ; + Name = "Check8", ; + TabIndex = 6, ; + Top = 242, ; + Width = 265 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Container1' AS container WITH ; + BackStyle = 0, ; + Height = 154, ; + Left = 7, ; + Name = "Container1", ; + Top = 27, ; + Width = 589 + *< END OBJECT: BaseClass="container" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Container1.cmdSetFolder' AS commandbutton WITH ; + Caption = "Set Folder", ; + FontSize = 9, ; + Height = 21, ; + Left = 498, ; + Name = "cmdSetFolder", ; + TabIndex = 11, ; + ToolTipText = "Pick a storage for lacal settings. Available after restart.", ; + Top = 96, ; + Visible = .F., ; + Width = 80 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Container1.Label1' AS label WITH ; + BackStyle = 0, ; + Caption = "The default folder for GF settings is found in Home(7).", ; + FontSize = 9, ; + Left = 24, ; + Name = "Label1", ; + Top = 15, ; + Width = 551 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Container1.Label2' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Settings Folder:", ; + FontSize = 9, ; + Left = 12, ; + Name = "Label2", ; + Top = 126, ; + Width = 88 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Container1.Label3' AS label WITH ; + BackStyle = 0, ; + Caption = "You can select an alternative folder by using the options below. The name ", ; + FontSize = 9, ; + Left = 24, ; + Name = "Label3", ; + Top = 37, ; + Width = 551 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Container1.Label4' AS label WITH ; + BackStyle = 0, ; + Caption = "of the alternative folder is saved in your resource (FoxUser) file. Thus, you", ; + FontSize = 9, ; + Left = 24, ; + Name = "Label4", ; + Top = 55, ; + Width = 551 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Container1.Label5' AS label WITH ; + BackStyle = 0, ; + Caption = "may have a distinct settings folder for each resource file.", ; + FontSize = 9, ; + Left = 24, ; + Name = "Label5", ; + Top = 72, ; + Width = 551 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Container1.Optiongroup1' AS optiongroup WITH ; + BackStyle = 0, ; + ButtonCount = 3, ; + Height = 27, ; + Left = 12, ; + Name = "Optiongroup1", ; + Top = 93, ; + Value = 1, ; + Width = 569, ; + Option1.AutoSize = .F., ; + Option1.BackStyle = 0, ; + Option1.Caption = "GoFish Default = Home(7)", ; + Option1.Height = 17, ; + Option1.Left = 5, ; + Option1.Name = "Option1", ; + Option1.Style = 0, ; + Option1.Top = 5, ; + Option1.Value = 1, ; + Option1.Width = 162, ; + Option2.AutoSize = .F., ; + Option2.BackStyle = 0, ; + Option2.Caption = "Same folder as FoxUser", ; + Option2.Height = 17, ; + Option2.Left = 183, ; + Option2.Name = "Option2", ; + Option2.Style = 0, ; + Option2.Top = 5, ; + Option2.Width = 162, ; + Option3.AutoSize = .F., ; + Option3.BackStyle = 0, ; + Option3.Caption = "User Selection", ; + Option3.Height = 17, ; + Option3.Left = 361, ; + Option3.Name = "Option3", ; + Option3.Style = 0, ; + Option3.Top = 5, ; + Option3.Width = 162 + *< END OBJECT: BaseClass="optiongroup" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Container1.txtParentFolder' AS textbox WITH ; + BackStyle = 1, ; + BorderStyle = 0, ; + ControlSource = "", ; + FontSize = 9, ; + Height = 21, ; + Left = 112, ; + Name = "txtParentFolder", ; + ReadOnly = .T., ; + TabIndex = 12, ; + Top = 125, ; + Width = 466 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'pfSettings.pageReferences.Container1.Label1' AS label WITH ; + AutoSize = .T., ; + BackStyle = 1, ; + Caption = " Location for the settings folder (which includes search history) ", ; + Left = 26, ; + Name = "Label1", ; + TabIndex = 13, ; + Top = 20, ; + Visible = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReferences.Label1' AS label WITH ; + BackStyle = 0, ; + Caption = "TreeView options:", ; + FontSize = 9, ; + Height = 17, ; + Left = 51, ; + Name = "Label1", ; + Top = 58, ; + Width = 107 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReferences.Label9' AS label WITH ; + Alignment = 2, ; + Anchor = 0, ; + BackStyle = 0, ; + Caption = "***** NOTE: These changes willl take effect after restarting GoFish. ******", ; + FontBold = .T., ; + ForeColor = 255,0,0, ; + Left = 12, ; + Name = "Label9", ; + TabIndex = 13, ; + Top = 477, ; + Visible = .F., ; + Width = 434 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReferences.Optiongroup1' AS optiongroup WITH ; + BackStyle = 0, ; + ButtonCount = 3, ; + Height = 85, ; + Left = 163, ; + Name = "Optiongroup1", ; + Top = 55, ; + Value = 1, ; + Width = 270, ; + Option1.AutoSize = .F., ; + Option1.BackStyle = 0, ; + Option1.Caption = "Simple list, alphabetical by file name", ; + Option1.Height = 17, ; + Option1.Left = 5, ; + Option1.Name = "Option1", ; + Option1.Style = 0, ; + Option1.Top = 5, ; + Option1.Value = 1, ; + Option1.Width = 218, ; + Option2.AutoSize = .F., ; + Option2.BackStyle = 0, ; + Option2.Caption = "Simple list, alphabetical by extension", ; + Option2.Height = 17, ; + Option2.Left = 5, ; + Option2.Name = "Option2", ; + Option2.Style = 0, ; + Option2.Top = 30, ; + Option2.Width = 218, ; + Option3.AutoSize = .T., ; + Option3.BackStyle = 0, ; + Option3.Caption = "Categorized list (Classes, Forms, etc)", ; + Option3.Height = 17, ; + Option3.Left = 5, ; + Option3.Name = "Option3", ; + Option3.Style = 0, ; + Option3.Top = 55, ; + Option3.Width = 225 + *< END OBJECT: BaseClass="optiongroup" /> + + ADD OBJECT 'pfSettings.pageReplace.Check1' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Enable Replace Mode", ; + ControlSource = "Thisform.oSearchOptions.lEnableReplaceMode", ; + Height = 17, ; + Left = 10, ; + Name = "Check1", ; + Top = 5, ; + Width = 139 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageReplace.Check2' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Do not show replace warning dialog box with each replace", ; + ControlSource = "Thisform.oSearchOptions.lDoNotShowReplaceWarning", ; + Height = 17, ; + Left = 7, ; + Name = "Check2", ; + Top = 472, ; + Width = 336 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'pfSettings.pageReplace.Image1' AS image WITH ; + Height = 338, ; + Left = 4, ; + Name = "Image1", ; + Picture = ..\images\replacelevels.bmp, ; + Stretch = 0, ; + Top = 124, ; + Width = 619 + *< END OBJECT: BaseClass="image" /> + + ADD OBJECT 'pfSettings.pageReplace.Label1' AS label WITH ; + BackStyle = 0, ; + Caption = "Warning: There are many risks associated with tools that replace code on your source files. Please review the GoFish Code Replacement Guide to be sure you understand how to use GoFish to replace code, and what the risks are.", ; + ForeColor = 255,0,0, ; + Height = 45, ; + Left = 8, ; + Name = "Label1", ; + Top = 26, ; + Width = 582, ; + WordWrap = .T. + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReplace.Label2' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "See the GoFish Replace Help page for more info.", ; + FontUnderline = .T., ; + ForeColor = 0,0,255, ; + Height = 17, ; + Left = 126, ; + MousePointer = 15, ; + Name = "Label2", ; + Top = 56, ; + Width = 271 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReplace.Label3' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Select the maximum Replace Risk level to enable in the results grid:", ; + FontBold = .T., ; + Height = 17, ; + Left = 10, ; + Name = "Label3", ; + Top = 79, ; + Width = 385 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'pfSettings.pageReplace.optiongroupReplaceSafetyLevel' AS optiongroup WITH ; + ButtonCount = 3, ; + ControlSource = "Thisform.nReplaceRisk", ; + Height = 25, ; + Left = 121, ; + Name = "optiongroupReplaceSafetyLevel", ; + Top = 100, ; + Value = 0, ; + Width = 355, ; + Option1.AutoSize = .T., ; + Option1.BackStyle = 0, ; + Option1.Caption = "1= Pretty Safe", ; + Option1.Height = 17, ; + Option1.Left = 8, ; + Option1.Name = "Option2", ; + Option1.Top = 4, ; + Option1.Width = 93, ; + Option2.AutoSize = .T., ; + Option2.BackStyle = 0, ; + Option2.Caption = "2 = Kinda Safe", ; + Option2.Height = 17, ; + Option2.Left = 121, ; + Option2.Name = "Option3", ; + Option2.Top = 4, ; + Option2.Width = 98, ; + Option3.AutoSize = .T., ; + Option3.BackStyle = 0, ; + Option3.Caption = "3 = Dangerous", ; + Option3.Height = 17, ; + Option3.Left = 246, ; + Option3.Name = "Option4", ; + Option3.Top = 4, ; + Option3.Width = 100 + *< END OBJECT: BaseClass="optiongroup" /> + + PROCEDURE Activate + Thisform.Refresh() + ENDPROC + + PROCEDURE applycolumnsettings + Local lcControlSourceField, loColumn, loControl + + *-- Set .Visible property on the Results form grid columns + For each loControl in Thisform.pfSettings.pageColumns.containerColumnCheckBoxes.Controls + lcControlSourceField = loControl.tag + loColumn = Thisform.oForm.oGrid.FindColumn(lcControlSourceField) + loColumn.Visible = Iif(loControl.value = 1, .t., .f.) + EndFor + ENDPROC + + PROCEDURE askifsavechanges + Local lnResponse + + lnResponse = Messagebox('Save your changes, if any?', 3, 'Save changes?') + Do Case + Case m.lnResponse = 6 + Thisform.lReturn = .T. + Return .T. + Case m.lnResponse = 7 + Thisform.lReturn = .F. + Return .T. + Otherwise + Return .F. + Endcase + ENDPROC + + PROCEDURE buildcolumncheckboxes + Local lcName, llAlreadyAdded, lnContainerHeight, lnCount, lnRow, lnRow1, lnTop, lnMaxWidth, lnCol, lnCount2, lcName2 + Local lnVerticalSpacing, lnX, lnY, loCheckBox, loColumn, loContainerCheckBoxes, loPageframe + + lnY = 12 + lnX = Round(90 * Thisform.nFontSizeMultiplier, 0) + + lnVerticalSpacing = Round(24 * Thisform.nFontSizeMultiplier, 0) + llAlreadyAdded = .F. + + loPageframe = Thisform.pfSettings + loContainerCheckBoxes = m.loPageframe.pageColumns.containerColumnCheckBoxes + lnContainerHeight = m.loContainerCheckBoxes.Height + + *!* This.oForm.gaFields: + *!* (m.lnRow, 1) = controlsource + *!* (m.lnRow, 2) = Default column order + *!* (m.lnRow, 3) = Caption, if emptyas controlsource + *!* (m.lnRow, 4) = Usage: + *!* <0: only if dlDebug is .T., no column in the grid + *!* -2: Group "Control" in options control fields, not visible as default, only if dlDebug is .T. + *!* -1: Group "Debug" in options, not visible as default, only if dlDebug is .T. + *!* 0: Group "Default" in options, visible as default + *!* 1: Alternative group #1 in options, not visible as default + *!* 2: Alternative group #2 in options, not visible as default + *!* 3: Replace group disabled in options, visibility will switch with replace mode + *!* 4: Replace group enabled in options, not visible as default + *!* (m.lnRow, 5) = column.width + + Local Array; + laFieldNames[This.oForm.oGrid.ColumnCount, 7] + + For Each m.loColumn In This.oForm.oGrid.Columns FoxObject + lnRow = m.loColumn.ColumnOrder + lnRow1 = Ascan(This.oForm.gaFields, Proper(Getwordnum(m.loColumn.ControlSource, 2, ".")), -1, -1, 1, 15) + Do Case + Case Empty(m.lnRow1) + *not found + laFieldNames[lnRow, 5] = m.loContainerCheckBoxes.BackColor + laFieldNames[lnRow, 1] = "G" + Case This.oForm.gaFields(m.lnRow1, 4)=0 + *default + laFieldNames[lnRow, 5] = Rgb(255, 255, 255) + laFieldNames[lnRow, 1] = "A" + laFieldNames[lnRow, 6] = .T. + Case Inlist(This.oForm.gaFields(m.lnRow1, 4), 1, 2) + *alternative + laFieldNames[lnRow, 5] = m.loContainerCheckBoxes.BackColor + laFieldNames[lnRow, 1] = "D" + Case This.oForm.gaFields(m.lnRow1, 4)=3 + *replace (locked) + laFieldNames[lnRow, 5] = Thisform.nReplacedDynamicBackColour + laFieldNames[lnRow, 1] = "B" + laFieldNames[lnRow, 6] = .Null. + laFieldNames[lnRow, 7] = .T. + Case This.oForm.gaFields(m.lnRow1, 4)=4 + *replace + laFieldNames[lnRow, 5] = Thisform.nReplacedDynamicBackColour + laFieldNames[lnRow, 1] = "C" + laFieldNames[lnRow, 7] = .T. + Case This.oForm.gaFields(m.lnRow1, 4)=-1 + + *debug + laFieldNames[lnRow, 5] = Rgb(0, 255, 255) + laFieldNames[lnRow, 1] = "E" + Otherwise + laFieldNames[lnRow, 5] = Rgb(255,128,128) + laFieldNames[lnRow, 1] = "F" + Endcase + + laFieldNames[lnRow, 1] = laFieldNames[lnRow, 1]+Iif(m.loColumn.Visible, 'A' + Str(lnRow, 4, 0), 'B' + Upper(m.loColumn.Header1.Caption)) + laFieldNames[lnRow, 2] = m.loColumn.Visible + laFieldNames[lnRow, 3] = m.loColumn.Header1.Caption + laFieldNames[lnRow, 4] = m.loColumn.Header1.Tag + laFieldNames[lnRow, 4] = m.loColumn.Header1.Tag + Endfor + + Asort(m.laFieldNames, 1, -1) + + lnCol = 1 + lnMaxWidth = 0 + + lnTop = m.lnY + + For lnCount = 1 To Alen(m.laFieldNames, 1) + + lcName = 'CheckBox_' + Alltrim(Str(m.lnCount)) + Try + m.loContainerCheckBoxes.RemoveObject(m.lcName) + Catch + Endtry + m.loContainerCheckBoxes.AddObject(m.lcName, 'CheckBox') + loCheckBox = m.loContainerCheckBoxes.&lcName + + With m.loCheckBox + .Caption = m.laFieldNames[m.lnCount, 3] + .Tag = m.laFieldNames[m.lnCount, 4] && Holds the control source!!! + .Value = Iif(m.laFieldNames[m.lnCount, 2] = .T., 1, 0) + .FontSize = Thisform.FontSize + .Visible = .T. + .AutoSize = .T. + .BackColor = m.laFieldNames[m.lnCount, 5] + .Enabled = !Isnull(m.laFieldNames[m.lnCount, 6]) + .AddProperty("glDefault", m.laFieldNames[m.lnCount, 6]) + .AddProperty("glReplace", m.laFieldNames[m.lnCount, 7]) + + If m.lnTop + m.lnVerticalSpacing > m.lnContainerHeight - 12 + lnTop = m.lnY + lnX = m.lnX + 200 + For lnCount2 = lnCol To lnCount-1 + lcName2 = 'CheckBox_' + Alltrim(Str(m.lnCount2)) + loCheckBox = m.loContainerCheckBoxes.&lcName2 + loCheckBox.Width = m.lnMaxWidth + + Endfor &&lnCount2 + lnCol = lnCount + lnMaxWidth = 0 + Endif + + .AutoSize = .F. + lnMaxWidth = Max(m.lnMaxWidth, .Width+3) + .Move(m.lnX, m.lnTop, .Width+3, .Height+6) + .TabIndex = m.lnCount + + lnTop = m.lnTop + m.lnVerticalSpacing + Endwith + + Endfor + + For lnCount2 = lnCol To lnCount-1 + lcName2 = 'CheckBox_' + Alltrim(Str(m.lnCount2)) + loCheckBox = m.loContainerCheckBoxes.&lcName2 + loCheckBox.Width = m.lnMaxWidth + + Endfor &&lnCount2 + + ENDPROC + + PROCEDURE Destroy + Thisform.oForm.nOptionsStartPage = Thisform.pfSettings.ActivePage + + DoDefault() + + If this.lReturn + ThisForm.SaveOptions() + Endif + + ENDPROC + + PROCEDURE Init + Lparameters toForm + + If VarType(m.toForm) != 'O' + Messagebox('Must pass a reference to GoFish Results Form when calling this form.', 0, 'GoFish') + Return .F. + Endif + + DoDefault(m.toForm) + + Thisform.LoadOptions() + + This.BindControls = .T. + + Thisform.pfSettings.pageBackups.Enabled = Thisform.oSearchOptions.lEnableReplaceMode + + *SF 20221018 -> local storage + If Thisform.oForm.nFirstLoad=1 Then + This.pfSettings.pageAdvanced.Label3.Caption = 'Home(7)\GoFish_ = ' + Proper(Addbs(Home(7) + 'GoFish_')) + * This.pfSettings.pageBackups.Label5.Caption = 'Home(7)\GoFish_\GoFishBackups\ = ' + Proper(Addbs(Home(7)) + 'GoFish_\GoFishBackups\' ) + This.pfSettings.pageBackups.Label5.Caption = 'Home(7)\GoFish_\GF_ReplaceBackups\ = ' + Proper(Addbs(Home(7)) + 'GoFish_\GF_ReplaceBackups\' ) + Else &&thisform.oForm.nFirstLoad=1 + This.pfSettings.pageAdvanced.Label3.Caption = 'LOCAL = ' + Proper(Thisform.cCR_StoreLocal) + This.pfSettings.pageBackups.Label1.Caption = STRTRAN(This.pfSettings.pageBackups.Label1.Caption,'HOME(7)','') + * This.pfSettings.pageBackups.Label5.Caption = 'LOCAL\GoFishBackups\ = ' + Proper(Thisform.cCR_StoreLocal + 'GoFishBackups\' ) + This.pfSettings.pageBackups.Label5.Caption = 'LOCAL\GF_ReplaceBackups\ = ' + Proper(Thisform.cCR_StoreLocal + 'GF_ReplaceBackups\' ) + + Endif &&thisform.oForm.nFirstLoad=1 + */SF 20221018 -> local storage + + Try + This.pfSettings.ActivePage = toForm.nOptionsStartPage + Catch to loException + + EndTry + + Thisform.Refresh() + + ENDPROC + + PROCEDURE loadformsettings + This.MinHeight = This.Height + This.MinWidth = This.Width + + DoDefault() + ENDPROC + + PROCEDURE loadoptions + This.oSearchOptions = This.CopyObjectProperties(This.oSearchOptions, CreateObject('GoFishSearchOptions')) + + Thisform.LoadResultsFormProperties() + + This.BuildColumnCheckBoxes() + ENDPROC + + PROCEDURE loadresultsformproperties + Local laProperties[1], lcProperty, lcXmlSettingsFile + + lcXmlSettingsFile = Thisform.cUISettingsFile + + *-- Get an array of Custom Form-level properties that are on the Restults form. + *-- Store them in the corresponding local Form properties here, if present. + Amembers(laProperties, Thisform.oForm, 0, 'U') + + *--- Import Custom properties from oForm to ThisForm + For x = 1 To Alen(laProperties) + lcProperty = laProperties[x] + If INLIST(" " + Lower(m.lcProperty) + " ", " oform ", " cuisettingsfile ", " omy ") THEN + Loop + ENDIF &&INLIST(" " + Lower(m.lcProperty) + " ", " oform ", " cuisettingsfile ") + + AddProperty(This, lcProperty) + Try + Store Evaluate('Thisform.oForm.' + lcProperty) To ('Thisform.' + lcProperty) + Catch + Endtry + Endfor + + Thisform.cUISettingsFile = lcXmlSettingsFile && Must restore, since above trick overwrite this important setting + + Thisform.nDockable = Thisform.oForm.Dockable + + Thisform.nReplaceRisk = Evl(Thisform.oForm.nReplaceRisk, 1) + + *SF 20221015 + * --- set colours used for showing informations --- + + *.<<@N>>.BORDERWIDTH = 0 + This.pfSettings.pageColours.Container2.BorderWidth = 0 + This.pfSettings.pageColours.Container3.BorderWidth = 0 + This.pfSettings.pageColours.Container4.BorderWidth = 0 + This.pfSettings.pageColours.Container5.BorderWidth = 0 + This.pfSettings.pageColours.Container6.BorderWidth = 0 + This.pfSettings.pageColours.Container7.BorderWidth = 0 + This.pfSettings.pageColours.Container8.BorderWidth = 0 + This.pfSettings.pageColours.Container9.BorderWidth = 0 + This.pfSettings.pageColours.Container10.BorderWidth = 0 + This.pfSettings.pageColours.Container11.BorderWidth = 0 + This.pfSettings.pageColours.Container12.BorderWidth = 0 + This.pfSettings.pageColours.Container13.BorderWidth = 0 + + This.pfSettings.pageColours.Container1.BorderColor = Thisform.nContainerFrameColour + This.pfSettings.pageColours.Container2.lblExample1.ForeColor = Thisform.nFileSCXDynamicForeColour + This.pfSettings.pageColours.Container3.lblExample1.ForeColor = Thisform.nFileVCXDynamicForeColour + This.pfSettings.pageColours.Container4.lblExample1.ForeColor = Thisform.nFilePRGDynamicForeColour + This.pfSettings.pageColours.Container5.lblExample1.ForeColor = Thisform.nFileDefaultDynamicForeColour + This.pfSettings.pageColours.Container6.BackColor = Thisform.nReplacedDynamicBackColour + This.pfSettings.pageColours.Container7.BackColor = Thisform.nRiskExceededDynamicBackColour + This.pfSettings.pageColours.Container14.BackColor = Thisform.nRisk1DynamicBackColour + This.pfSettings.pageColours.Container8.BackColor = Thisform.nRisk2DynamicBackColour + This.pfSettings.pageColours.Container9.BackColor = Thisform.nRisk3DynamicBackColour + This.pfSettings.pageColours.Container10.lblExample1.ForeColor = Thisform.nTreeSearchColour + This.pfSettings.pageColours.Container11.lblExample1.ForeColor = Thisform.nTreeUpdateColour + This.pfSettings.pageColours.Container12.BackColor = Thisform.nCSS_tr_even_Colour + This.pfSettings.pageColours.Container13.BackColor = Thisform.nCSS_tr_odd_Colour + */SF 20221015 + + *SF 20221017 + Thisform.cCR_StoreLocal_Option = Evl(Thisform.cCR_StoreLocal_Option,; + Iif(Thisform.lCR_Local,Thisform.cCR_StoreLocal,'')) + Thisform.cCR_StoreLocal_Set = Thisform.cCR_StoreLocal_Option + + */SF 20221017 + + ENDPROC + + PROCEDURE QueryUnload + Local lnResponse + + If Thisform.lReturn + Return + EndIf + + If ThisForm.AskIfSaveChanges() = .F. + NoDefault + EndIf + + + ENDPROC + + PROCEDURE saveoptions + *-- Transfer Search Engine settings back to Results Form Search Engine instance + Local laProperties[1] + + This.CopyObjectProperties(This.oSearchOptions, Thisform.oSearchEngine.oSearchOptions) + + This.ApplyColumnSettings() + + *-- Transfer certain settings from Thisform back to the Search Results Form + With Thisform.oForm + .Dockable = Thisform.nDockable + .nFormFontSize = Thisform.nFormFontSize + .nContextMenuFontSize = Thisform.nContextMenuFontSize + .lUseSystemContextMenuFontsize = Thisform.lUseSystemContextMenuFontsize + + .nGridFontSize = Thisform.nGridFontSize + .nTreeViewFontSize = Thisform.nTreeViewFontSize + .nSearchBoxFontSize = Thisform.nSearchBoxFontSize + .nTabsToSpaces = Thisform.nTabsToSpaces + .nDropDownDisplayCount = Thisform.nDropDownDisplayCount + .nDropDownMaxMRU = Thisform.nDropDownMaxMRU + .nReplaceRisk = Evl(Thisform.nReplaceRisk, 1) + .lClearApplyFilter = Thisform.lClearApplyFilter + .lWarnWholeWord = Thisform.lWarnWholeWord + .nBrowserFontSize = Thisform.nBrowserFontSize + .lRestorePreviousSearchResultsOnStartup = Thisform.lRestorePreviousSearchResultsOnStartup + .lSaveSearchResults = Thisform.lSaveSearchResults + .nCodeViewLinesBefore = Thisform.nCodeViewLinesBefore + + + *!* ******** JRN Removed 2024-02-22 ******** + *!* .lShowRelativePath = Thisform.lShowRelativePath + *!* .lSortScopeDropdown = Thisform.lSortScopeDropdown + + .nJanitorRunDays = Thisform.nJanitorRunDays + .nJanitorSearchHistoryDays = Thisform.nJanitorSearchHistoryDays + .nJanitorReplaceHistoryDays = Thisform.nJanitorReplaceHistoryDays + .dLastJanitorRunDate = Thisform.dLastJanitorRunDate + + *SF 20221016 + .lCR_Allow = Thisform.lCR_Allow + .lMoveNewCodeToTopLeft= Thisform.lMoveNewCodeToTopLeft + .lDesktop = Thisform.lDesktop + + .cCR_StoreLocal_Option = Thisform.cCR_StoreLocal_Option + */SF 20221016 + + */SF 20221020 + .lOtherHistory = Thisform.lOtherHistory + */SF 20221020 + + *SF 20221019 5.2.000 + *missing from 206 + .nContainerFrameColour = Thisform.nContainerFrameColour + .nFileSCXDynamicForeColour = Thisform.nFileSCXDynamicForeColour + .nFileVCXDynamicForeColour = Thisform.nFileVCXDynamicForeColour + .nFilePRGDynamicForeColour = Thisform.nFilePRGDynamicForeColour + .nFileDefaultDynamicForeColour = Thisform.nFileDefaultDynamicForeColour + .nReplacedDynamicBackColour = Thisform.nReplacedDynamicBackColour + .nRiskExceededDynamicBackColour = Thisform.nRiskExceededDynamicBackColour + .nRisk1DynamicBackColour = Thisform.nRisk1DynamicBackColour + .nRisk2DynamicBackColour = Thisform.nRisk2DynamicBackColour + .nRisk3DynamicBackColour = Thisform.nRisk3DynamicBackColour + .nTreeSearchColour = Thisform.nTreeSearchColour + .nTreeUpdateColour = Thisform.nTreeUpdateColour + .nCSS_tr_even_Colour = Thisform.nCSS_tr_even_Colour + .nCSS_tr_odd_Colour = Thisform.nCSS_tr_odd_Colour + */missing from 206 + + *!* ******** JRN Removed 2024-11-07 ******** + *!* If .lCR_Allow Then + .lCR_Local_Default = Thisform.lCR_Local_Default + .lCR_Local = Thisform.lCR_Local + + .lCR_OpenMode = Thisform.lCR_OpenMode + .lCR_HistoryPerScope = Thisform.lCR_HistoryPerScope + .lCR_SearchComboPerScope = Thisform.lCR_SearchComboPerScope + + .lCR_RefreshTree = .lCR_HistoryTree # Thisform.lCR_HistoryTree; + OR .lCR_HistoryTreeAuto # Thisform.lCR_HistoryTreeAuto; + OR .lCR_SimpleTree # Thisform.lCR_SimpleTree; + OR .lCR_SortTreeByExt # Thisform.lCR_SortTreeByExt; + OR .lCR_SortTreeAlpha # Thisform.lCR_SortTreeAlpha + + .lCR_HistoryTree = Thisform.lCR_HistoryTree + .lCR_HistoryTreeAuto = Thisform.lCR_HistoryTreeAuto + .lCR_SimpleTree = Thisform.lCR_SimpleTree + .lCR_SortTreeByExt = Thisform.lCR_SortTreeByExt + .lCR_SortTreeAlpha = Thisform.lCR_SortTreeAlpha + + *!* ******** JRN Removed 2024-11-07 ******** + *!* Endif &&.lCR_Allow + */SF 20221019 5.2.000 + + .lDeleteStorage = Thisform.lDeleteStorage + + Endwith + + + If !Empty(Thisform.cCR_StoreLocal_Option) And !Thisform.cCR_StoreLocal_Option==Thisform.cCR_StoreLocal_Set Then + Thisform.Set_LocalFolder(Thisform.cCR_StoreLocal_Option) + Endif &&!EMPTY(Thisform.cCR_StoreLocal_Option) AND Thisform.cCR_StoreLocal_Option=Thisform.cCR_StoreLocal_Set + + If Thisform.oForm.lCR_Store_Restart + Messagebox('You will have to restart GoFish for this change to take effect.', 0, 'Notice:') + + Endif &&Thisform.pfSettings.pageAdvanced.Label9.Visible + + + ENDPROC + + PROCEDURE set_localfolder && cCR_StoreLocal_Option activated Check folder + Lparameters; + tcFolder + + Local; + lcFolder As String,; + llFound As Boolean,; + llSet As Boolean + + Do Case + Case !Empty(m.tcFolder) + *just store folder given + lcFolder = m.tcFolder + llFound = GF_Create_LocalPath(@lcFolder, .F., .F., .T.) + + GF_Put_LocalPath(m.lcFolder) + + Case Thisform.oForm.nFirstLoad#2 + *nothing to do + Case !Thisform.lCR_Allow + *nothing to do + Case !Thisform.lCR_Local + *nothing to do + Case !Empty(Thisform.cCR_StoreLocal_Option) + *nothing to do, activate + llSet = .T. + + Case GF_Get_LocalPath(@tcFolder) And Directory(m.tcFolder) + *found resource, activate + Thisform.cCR_StoreLocal_Option = m.tcFolder + Thisform.cCR_StoreLocal_Set = m.tcFolder + llSet = .T. + Otherwise + *pick a folder, or use default path + + tcFolder = Iif(Thisform.lCR_Local_Default,'',Justpath(Set("Resource",1))) + llFound = GF_Create_LocalPath(@tcFolder, .F., Thisform.lCR_Local_Default, Thisform.lCR_Local_Default) + + If Directory(m.tcFolder) Then + *folder found, activate + Thisform.cCR_StoreLocal_Option = m.tcFolder + Thisform.cCR_StoreLocal_Set = m.tcFolder + GF_Put_LocalPath (m.tcFolder) + llSet = .T. + Else &&Directory(m.tcFolder) + Thisform.lCR_Local = .F. + + Endif &&Directory(m.tcFolder) + Endcase + + Return m.llSet + + ENDPROC + + PROCEDURE validate + Local llAtLeastOneColumnSelected, loControl + + llAtLeastOneColumnSelected = .f. + + For each loControl in thisform.pfSettings.pageColumns.containerColumnCheckBoxes.Controls + If loControl.value = 1 + llAtLeastOneColumnSelected = .t. + Endif + EndFor + + If !llAtLeastOneColumnSelected + MessageBox('Please select at least one column to display in the grid.', 0, 'Notice:') + thisform.pfSettings.ActivePage = 1 + Return .f. + Endif + + + ENDPROC + + PROCEDURE cmdCancel.Click + Thisform.lReturn = .F. + + If Thisform.AskIfSaveChanges() + Thisform.Release() + Endif + + ENDPROC + + PROCEDURE cmdOK.Click + If Thisform.Validate() + Thisform.lReturn = .t. + Thisform.Release() + Endif + + ENDPROC + + PROCEDURE pfSettings.Page2.Spinner1.Valid + Thisform.dLastJanitorRunDate = {} + ENDPROC + + PROCEDURE pfSettings.Page2.Spinner2.Valid + Thisform.dLastJanitorRunDate = {} + ENDPROC + + PROCEDURE pfSettings.Page3.Activate + This.Refresh() + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.Check4.Click + Thisform.oForm.oSearchEngine.ClearReplaceSettings() + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.Check5.Click + Thisform.oForm.oSearchEngine.ClearReplaceSettings() + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.cntContextMenu.Check10.Valid + This.Parent.Label3.Refresh() + This.Parent.spnContextmenu.Refresh() + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.cntContextMenu.Label3.Refresh + This.Visible = Not Thisform.lUseSystemContextMenuFontsize + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.cntContextMenu.spnContextMenu.Refresh + This.Visible = Not Thisform.lUseSystemContextMenuFontsize + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Check12.Refresh + If Empty(Thisform.oForm.GetCustomcss()) + This.Value = .F. + This.Enabled = .F. + Endif + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Check12.Valid + This.Parent.chkDarkMode.Refresh() + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.chkDarkMode.Refresh + This.Visible = Thisform.oForm.lIDEColorsInCodeView + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.cmdZoomDefault.Click + Thisform.nBrowserFontSize = 14 + This.Parent.Refresh() + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Command1.Click + Local lnReturn, lnColour + + lnColour = Thisform.nContainerFrameColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nContainerFrameColour = m.lnReturn + This.Parent.Container1.BorderColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Container1.Click + This.Parent.Command1.Click + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Container1.lblExample1.Click + This.Parent.Parent.Command1.Click + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Container1.Refresh + This.BorderColor = Thisform.nContainerFrameColour + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Spinner4.Click + Nodefault + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Spinner4.DownClick + This.Value = This.Value - 0.00 + + Nodefault + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Spinner4.UpClick + This.Value = This.Value + 0.00 + + nodefault + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Spinner4.Valid + If This.Value < This.SpinnerLowValue + This.Value = This.SpinnerLowValue + EndIf + + If This.Value > This.SpinnerHighValue + This.Value = This.SpinnerHighValue + Endif + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Text1.Click + This.SelStart = 0 + This.SelLength = 100 + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.contCodeView.Text1.Valid + If this.Value <= 0 + MessageBox('Please enter a value greater than zero.', 64, 'GoFish') + Return .f. + Endif + + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.lblChangeFontSize.Refresh + This.Visible = Thisform.nFormFontSize # Thisform.oForm.nFormFontSize + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page1.Spinner8.InteractiveChange + This.Parent.lblChangeFontSize.Visible = .T. + Thisform.nContextMenuFontSize = This.Value + 2 + This.Parent.cntContextMenu.Refresh() + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.cmdBrowse.Click + lcFile = GetFile("PRG", "", "Select", 0, "Choose UDF File for Custom Scope:") + + If Empty(lcFile) + Thisform.oForm.cCustomScopeUDFFileName = "" + Else + Thisform.oForm.cCustomScopeUDFFileName = lcFile + Endif + + This.Parent.cmdEdit.Refresh() + This.Parent.txtCustomUDF.Refresh() + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.cmdBrowse.Refresh + Text To this.ToolTipText Noshow Textmerge + If "Custom UDF" is selected for Scope, then this UDF is called + to populate a cursor with the list of all files to be searched. + + This UDF takes two parameters: + [1] The search options object + [2] The name of the cursor (which will exist). + Endtext + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.cmdEdit.Click + Local lcFile + + lcFile = Thisform.oForm.cCustomScopeUDFFileName + GF_ModifyCommand(m.lcFile) + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.cmdEdit.Refresh + This.Enabled = !Empty(Thisform.oForm.cCustomScopeUDFFileName) + + Text To this.ToolTipText Noshow Textmerge + If "Custom UDF" is selected for Scope, then this UDF is called + to populate a cursor with the list of all files to be searched. + + This UDF takes two parameters: + [1] The search options object + [2] The name of the cursor (which will exist). + Endtext + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.cmdEditSettings.Click + Local lcFile + + lcFile = Thisform.oForm.cSearchOptionsUDFFileName + GF_ModifyCommand(m.lcFile) + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.cmdEditSettings.Refresh + This.Enabled = !Empty(Thisform.oForm.cSearchOptionsUDFFileName) + + Text To this.ToolTipText Noshow Textmerge + The "Options" UDF allows you to modify/re-set + any of the search options used by GF. + + It is called with a single parameter, + the search options object. + + The "Options" UDF is called by either + right-clicking or ctrl-clicking + on the "Advanced" button. + Endtext + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.cmdGotoFAQ.Click + GF_Shell('https://github.com/VFPX/GoFish/blob/master/docs/FAQ.md#CustomUDFScope') + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.cmdSettingsUDF.Click + lcFile = GetFile("PRG", "", "Select", 0, "Choose UDF File for search options:") + + If Empty(lcFile) + Thisform.oForm.cSearchOptionsUDFFileName = "" + Else + Thisform.oForm.cSearchOptionsUDFFileName = lcFile + Endif + + This.Parent.cmdEditSettings.Refresh() + This.Parent.txtSettingsUDF.Refresh() + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.cmdSettingsUDF.Refresh + Text To this.ToolTipText Noshow Textmerge + The "Options" UDF allows you to modify/re-set + any of the search options used by GF. + + It is called with a single parameter, + the search options object. + + The "Options" UDF is called by either + right-clicking or ctrl-clicking + on the "Advanced" button. + Endtext + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.txtCustomUDF.MouseEnter + LPARAMETERS nButton, nShift, nXCoord, nYCoord + + This.ToolTipText = This.Value + + ENDPROC + + PROCEDURE pfSettings.Page3.pfSettings.Page2.txtSettingsUDF.MouseEnter + LPARAMETERS nButton, nShift, nXCoord, nYCoord + + This.ToolTipText = This.Value + + ENDPROC + + PROCEDURE pfSettings.pageAdvanced.cmdDeleteConfigFiles.Click + Local lcFilesToDelete, lcPath, lnResponse + + *SF 20221018 -> local storage + *lcPath = '"' + Addbs(Home(7)) + '"' + lcPath = '"' + Thisform.cCR_StoreLocal + '"' + */SF 20221018 -> local storage + + lcFilesToDelete = Addbs(lcPath) + 'gf_*.xml' + + lnResponse = MessageBox('Are you sure you want to reset GoFish by erasing config files?',3, 'Erase config files?') + + If lnResponse = 6 + Delete File (lcFilesToDelete) + EndIf + + This.Parent.list1.Requery() + + + + + + ENDPROC + + PROCEDURE pfSettings.pageAdvanced.cmdOpenFolder.Click + *SF 20221018 -> local storage + *lcPath = '"' + Addbs(Home(7)) + '"' + lcPath = '"' + Thisform.cCR_StoreLocal + '"' + */SF 20221018 -> local storage + + GF_OpenExplorerWindow(lcPath) + ENDPROC + + PROCEDURE pfSettings.pageAdvanced.List1.Click + Local lnIndex + + lnIndex = this.ListIndex + lcValue = This.value + + If !('.XML' $ Upper(This.value)) + This.Init() && Reset RecordSource + This.Requery() + Endif + + This.Value = lcValue + ENDPROC + + PROCEDURE pfSettings.pageAdvanced.List1.DblClick + *SF 20221018 -> local storage + *lcFile = '"' + Addbs(Home(7)) + this.Value + '"' + lcFile = '"' + Thisform.cCR_StoreLocal + this.Value + '"' + */SF 20221018 -> local storage + + If 'GF_' $ Upper(lcFile) and Upper(JustExt(lcFile)) = 'XML' + Run /n "notepad" &lcFile + Else + This.Init() && Reset RecordSource + This.Requery() + Endif + ENDPROC + + PROCEDURE pfSettings.pageAdvanced.List1.Init + *SF 20221018 -> local storage + *This.RowSource = Addbs(Home(7)) + 'GF_*.xml' + This.RowSource = Thisform.cCR_StoreLocal + 'GF_*.xml' + */SF 20221018 -> local storage + + ENDPROC + + PROCEDURE pfSettings.pageBackups.Check1.Click + DoDefault() + + This.Parent.Refresh() + ENDPROC + + PROCEDURE pfSettings.pageBackups.Command2.Click + *SF 20221018 -> local storage + *lcPath = '"' + Addbs(Home(7) + 'GoFishBackups') + '"' + *lcPath = '"' + Addbs(Thisform.cCR_StoreLocal + 'GoFishBackups') + '"' + lcPath = '"' + Addbs(Thisform.cCR_StoreLocal + 'GF_ReplaceBackups') + '"' + */SF 20221018 -> local storage + + GF_OpenExplorerWindow(lcPath) + + ENDPROC + + PROCEDURE pfSettings.pageBackups.Label2.Click + messagebox('No help available at this time.', 0, 'GoFish') + *** TODO: GF_Shell('URL for backup help') + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command1.Click + Local lnReturn, lnColour + + lnColour = Thisform.nContainerFrameColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nContainerFrameColour = m.lnReturn + This.Parent.Container1.BorderColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command10.Click + Local lnReturn, lnColour + + lnColour = Thisform.nTreeSearchColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nTreeSearchColour = m.lnReturn + This.Parent.Container10.lblExample1.ForeColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command11.Click + Local lnReturn, lnColour + + lnColour = Thisform.nTreeUpdateColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nTreeUpdateColour = m.lnReturn + This.Parent.Container11.lblExample1.ForeColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command12.Click + Local lnReturn, lnColour + + lnColour = Thisform.nCSS_tr_even_Colour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nCSS_tr_even_Colour = m.lnReturn + This.Parent.Container12.lblExample1.ForeColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command13.Click + Local lnReturn, lnColour + + lnColour = Thisform.nCSS_tr_odd_Colour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nCSS_tr_odd_Colour = m.lnReturn + This.Parent.Container13.lblExample1.ForeColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command14.Click + Local lnReturn, lnColour + + lnColour = Thisform.nRisk1DynamicBackColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nRisk1DynamicBackColour = m.lnReturn + This.Parent.Container14.BackColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command2.Click + Local lnReturn, lnColour + + lnColour = Thisform.nFileSCXDynamicForeColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nFileSCXDynamicForeColour = m.lnReturn + This.Parent.Container2.lblExample1.ForeColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command3.Click + Local lnReturn, lnColour + + lnColour = Thisform.nFileVCXDynamicForeColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nFileVCXDynamicForeColour = m.lnReturn + This.Parent.Container3.lblExample1.ForeColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command4.Click + Local lnReturn, lnColour + + lnColour = Thisform.nFilePRGDynamicForeColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nFilePRGDynamicForeColour = m.lnReturn + This.Parent.Container4.lblExample1.ForeColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command5.Click + Local lnReturn, lnColour + + lnColour = Thisform.nFileDefaultDynamicForeColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nFileDefaultDynamicForeColour = m.lnReturn + This.Parent.Container5.lblExample1.ForeColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command6.Click + Local lnReturn, lnColour + + lnColour = Thisform.nReplacedDynamicBackColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nReplacedDynamicBackColour = m.lnReturn + This.Parent.Container6.BackColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command7.Click + Local lnReturn, lnColour + + lnColour = Thisform.nRiskExceededDynamicBackColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nRiskExceededDynamicBackColour = m.lnReturn + This.Parent.Container7.BackColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command8.Click + Local lnReturn, lnColour + + lnColour = Thisform.nRisk2DynamicBackColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nRisk2DynamicBackColour = m.lnReturn + This.Parent.Container8.BackColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Command9.Click + Local lnReturn, lnColour + + lnColour = Thisform.nRisk3DynamicBackColour + lnReturn = Getcolor(m.lnColour) + + If m.lnReturn#-1 Then + Thisform.nRisk3DynamicBackColour = m.lnReturn + This.Parent.Container9.BackColor = m.lnReturn + Endif &&m.lnReturn#-1 + + ENDPROC + + PROCEDURE pfSettings.pageColours.Container1.Click + This.Parent.Command1.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container1.lblExample1.Click + This.Parent.Parent.Command1.Click + + ENDPROC + + PROCEDURE pfSettings.pageColours.Container10.Click + This.Parent.Command10.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container10.lblExample1.Click + This.Parent.Parent.Command10.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container11.Click + This.Parent.Command11.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container11.lblExample1.Click + This.Parent.Parent.Command11.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container12.Click + This.Parent.Command12.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container12.lblExample1.Click + This.Parent.Parent.Command12.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container13.Click + This.Parent.Command13.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container13.lblExample1.Click + This.Parent.Parent.Command13.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container14.Click + This.Parent.Command14.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container14.lblExample1.Click + This.Parent.Parent.Command14.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container2.Click + This.Parent.Command2.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container2.lblExample1.Click + This.Parent.Parent.Command2.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container3.Click + This.Parent.Command3.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container3.lblExample1.Click + This.Parent.Parent.Command3.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container4.Click + This.Parent.Command4.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container4.lblExample1.Click + This.Parent.Parent.Command4.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container5.Click + This.Parent.Command5.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container5.lblExample1.Click + This.Parent.Parent.Command5.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container6.Click + This.Parent.Command6.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container6.lblExample1.Click + This.Parent.Parent.Command6.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container7.Click + This.Parent.Command7.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container7.lblExample1.Click + This.Parent.Parent.Command7.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container8.Click + This.Parent.Command8.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container8.lblExample1.Click + This.Parent.Parent.Command8.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container9.Click + This.Parent.Command9.Click + ENDPROC + + PROCEDURE pfSettings.pageColours.Container9.lblExample1.Click + This.Parent.Parent.Command9.Click + ENDPROC + + PROCEDURE pfSettings.pageColumns.cmdClearAll.Click + For Each loControl In This.Parent.containerColumnCheckBoxes.Controls + Do Case + Case Isnull(loControl.glDefault) + *replace column, ignore + Otherwise + *on + loControl.Value = 0 + Endcase + Endfor + + ENDPROC + + PROCEDURE pfSettings.pageColumns.cmdDefault.Click + For Each loControl In This.Parent.containerColumnCheckBoxes.Controls + Do Case + Case Isnull(loControl.glDefault) + *replace column, ignore + Case loControl.glDefault + *default column + loControl.Value = 1 + Otherwise + *non default column + loControl.Value = 0 + Endcase + Endfor + + ENDPROC + + PROCEDURE pfSettings.pageColumns.cmdDefault.UIEnable + Lparameters tlEnable + + Local; + loControl As Object + + If m.tlEnable Then + For Each m.loControl In This.Parent.containerColumnCheckBoxes.Controls FoxObject + If Pemstatus(m.loControl,"glReplace",5) And m.loControl.glReplace Then + loControl.BackColor = Thisform.nReplacedDynamicBackColour + + Endif &&Pemstatus(m.loControl,"glReplace",5) And m.loControl.glReplace + Endfor &&loControl + Endif &&m.tlEnable + + ENDPROC + + PROCEDURE pfSettings.pageColumns.cmdSelectAll.Click + For Each loControl In This.Parent.containerColumnCheckBoxes.Controls + Do Case + Case Isnull(loControl.glDefault) + *replace column, ignore + Otherwise + *on + loControl.Value = 1 + Endcase + Endfor + + ENDPROC + + PROCEDURE pfSettings.pagePreferences.Activate + This.Refresh() + ENDPROC + + PROCEDURE pfSettings.pagePreferences.cboDockable.InteractiveChange + lnCurrentDockable = Thisform.oForm.Dockable + lnNewValue = this.Value + + If lnNewValue = 0 and lnCurrentDockable # 0 + MessageBox('You will have to restart GoFish for this change to take effect.', 0, 'Notice:') + Endif + + Thisform.nDockable = This.Value + ENDPROC + + PROCEDURE pfSettings.pagePreferences.Check12.Refresh + If Empty(Thisform.oForm.GetCustomcss()) + This.Value = .F. + This.Enabled = .F. + Endif + + ENDPROC + + PROCEDURE pfSettings.pagePreferences.Check4.Init + Text To this.ToolTipText Noshow Textmerge + At startup, set scope to the Active Project, if any, else the current directory. + + If not selected, the most recently used scope remains active. + Endtext + + ENDPROC + + PROCEDURE pfSettings.pagePreferences.chkDesktop.InteractiveChange + Local lcSettingsFile, loMy, loSettings + + loMy = Newobject('My', 'My.vcx') + loSettings = m.loMy.Settings + + *SF 20221018 -> local storage + *lcSettingsFile = addbs(home(7)) + Thisform.oForm.cUISettingsFile + lcSettingsFile = Thisform.oForm.cCR_StoreLocal + Thisform.oForm.cUISettingsFile + */SF 20221018 -> local storage + + m.loSettings.Load(m.lcSettingsFile) + m.loSettings.Add('lDesktop', This.Value) + m.loSettings.Save(m.lcSettingsFile) + Messagebox('Note: This change takes effect the next time you run GoFish.', 64, 'GoFish') + + ENDPROC + + PROCEDURE pfSettings.pagePreferences.contMiscellaneous.cmdZoomDefault.Click + Thisform.nBrowserFontSize = 14 + This.Parent.Refresh() + ENDPROC + + PROCEDURE pfSettings.pagePreferences.contMiscellaneous.lblChangeFontSize.Refresh + This.Visible = Thisform.nFormFontSize # Thisform.oForm.nFormFontSize + ENDPROC + + PROCEDURE pfSettings.pagePreferences.contMiscellaneous.Spinner4.Click + Nodefault + ENDPROC + + PROCEDURE pfSettings.pagePreferences.contMiscellaneous.Spinner4.DownClick + This.Value = This.Value - 0.00 + + Nodefault + ENDPROC + + PROCEDURE pfSettings.pagePreferences.contMiscellaneous.Spinner4.UpClick + This.Value = This.Value + 0.00 + + nodefault + ENDPROC + + PROCEDURE pfSettings.pagePreferences.contMiscellaneous.Spinner4.Valid + If This.Value < This.SpinnerLowValue + This.Value = This.SpinnerLowValue + EndIf + + If This.Value > This.SpinnerHighValue + This.Value = This.SpinnerHighValue + Endif + ENDPROC + + PROCEDURE pfSettings.pagePreferences.contMiscellaneous.Spinner8.InteractiveChange + This.Parent.lblChangeFontSize.Visible = .T. + ENDPROC + + PROCEDURE pfSettings.pageReferences.Activate + This.Refresh() + + ENDPROC + + PROCEDURE pfSettings.pageReferences.Check1.Init + Text To this.ToolTipText Noshow Textmerge + At startup, set scope to the Active Project, if any, else the current directory. + + If not selected, the most recently used scope remains active. + Endtext + + ENDPROC + + PROCEDURE pfSettings.pageReferences.chk_CRMode.Valid + Thisform.oForm.lCR_Store_Restart = .T. + + With This.Parent + .Container1.Refresh() + .Label9.Refresh() + Endwith + + + + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Check2.Refresh + This.Enabled = Thisform.lCR_HistoryTree + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Check4.Valid + This.Parent.Check2.Refresh() + This.Parent.Check7.Refresh() + This.Parent.Check8.Refresh() + + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Check7.Refresh + This.Enabled = Thisform.lCR_HistoryTree + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Check8.Refresh + This.Enabled = Thisform.lCR_HistoryTree + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Container1.cmdSetFolder.Click + Local lcFolder As String + + lcFolder = Thisform.cCR_StoreLocal_Option + lcFolder = Getdir(m.lcFolder, 'Local GoFish config folder. Please pick one.', '', 64 + 1 + 32 + 2 + 8) + If Not Empty(m.lcFolder) Then + Thisform.cCR_StoreLocal_Option = m.lcFolder + This.Parent.txtParentFolder.Refresh() + Endif &&!EMPTY(m.lcFolder) + + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Container1.cmdSetFolder.Refresh + This.Visible = Thisform.lCR_Local And Not Thisform.lCR_Local_Default + + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Container1.Optiongroup1.Refresh + Do Case + Case Thisform.lCR_Local_Default + This.Value = 2 + Case Thisform.lCR_Local + This.Value = 3 + Otherwise + This.Value = 1 + Endcase + + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Container1.Optiongroup1.Valid + Do Case + Case This.Value = 1 + Thisform.lCR_Local = .F. + Thisform.lCR_Local_Default = .F. + Case This.Value = 2 + Thisform.lCR_Local = .T. + Thisform.lCR_Local_Default = .T. + Case This.Value = 3 + Thisform.lCR_Local = .T. + Thisform.lCR_Local_Default = .F. + Endcase + + This.Parent.txtParentFolder.Refresh() + This.Parent.cmdSetFolder.Refresh() + + Thisform.oForm.lCR_Store_Restart = .T. + This.Parent.Parent.Parent.Label9.Refresh() + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Container1.Refresh + This.Visible = Thisform.lCR_Allow + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Container1.txtParentFolder.Refresh + Local lcFolder, loException + + lcFolder = '*** Error ***' + + Try + Do Case + Case Thisform.lCR_Local_Default + lcFolder = Addbs(Justpath(Set('Resource', 1))) + 'GoFish_' + Case Thisform.lCR_Local + lcFolder = Addbs(Thisform.cCR_StoreLocal_Option) + Otherwise + lcFolder = Addbs( Home(7)) + 'GoFish_' + Endcase + Catch To m.loException + + Endtry + + lcFolder = Lower(Addbs(m.lcFolder)) + + Thisform.cCR_StoreLocal_Option = lcFolder + + This.Value = m.lcFolder + + ENDPROC + + PROCEDURE pfSettings.pageReferences.Container1.Refresh + This.Visible = Thisform.lCR_Allow + ENDPROC + + PROCEDURE pfSettings.pageReferences.Label9.Refresh + This.Visible = Thisform.oForm.lCR_Store_Restart + + ENDPROC + + PROCEDURE pfSettings.pageReferences.Optiongroup1.Refresh + Do Case + Case Thisform.lCR_SimpleTree and Thisform.lCR_SortTreeByExt + This.Value = 2 + Case Thisform.lCR_SimpleTree + This.Value = 1 + Otherwise + This.Value = 3 + Endcase + + ENDPROC + + PROCEDURE pfSettings.pageReferences.Optiongroup1.Valid + Do Case + Case This.Value = 1 + Thisform.lCR_SimpleTree = .T. + Thisform.lCR_SortTreeByExt = .F. + Case This.Value = 2 + Thisform.lCR_SimpleTree = .T. + Thisform.lCR_SortTreeByExt = .T. + Case This.Value = 3 + Thisform.lCR_SimpleTree = .F. + Thisform.lCR_SortTreeByExt = .F. + Endcase + + + ENDPROC + + PROCEDURE pfSettings.pageReplace.Activate + This.Refresh() + ENDPROC + + PROCEDURE pfSettings.pageReplace.Check1.Click + DoDefault() + + Thisform.oSearchOptions.lBackup = .t. + + This.Parent.Refresh() + ENDPROC + + PROCEDURE pfSettings.pageReplace.Check2.Click + DoDefault() + + This.Parent.Refresh() + ENDPROC + + PROCEDURE pfSettings.pageReplace.Label2.Click + messagebox('No help available at this time.', 0, 'GoFish') + *** TODO: GF_Shell('URL for replace help') + + ENDPROC + + PROCEDURE pfSettings.pageReplace.optiongroupReplaceSafetyLevel.Option2.Click + DoDefault() + + This.Parent.Refresh() + + + ENDPROC + + PROCEDURE pfSettings.pageReplace.optiongroupReplaceSafetyLevel.Option3.Click + DoDefault() + + This.Parent.Refresh() + + + ENDPROC + + PROCEDURE pfSettings.pageReplace.optiongroupReplaceSafetyLevel.Option4.Click + DoDefault() + + This.Parent.Refresh() + + ENDPROC + + PROCEDURE pfSettings.pageReplace.optiongroupReplaceSafetyLevel.Refresh + lnColor = Rgb(240, 240, 240) + + lnRiskLevel = This.Value + + Do Case + Case lnRiskLevel = 1 + lnColor = Thisform.nRisk1DynamicBackColour &&Rgb(0, 176, 80)&& Green + + Case lnRiskLevel = 2 + lnColor = Thisform.nRisk2DynamicBackColour &&Rgb(255, 255, 128) && Yellow + + Case lnRiskLevel = 3 + lnColor = Thisform.nRisk3DynamicBackColour &&Rgb(255, 192, 0)&& Orange + Endcase + + If Thisform.oSearchOptions.lEnableReplaceMode + This.BackColor = lnColor + This.SetAll('Enabled', .t., 'OptionButton') + This.SetAll('Forecolor', Rgb(0,0,0), 'OptionButton') + Else + This.BackColor = Rgb(255,255,255) + This.SetAll('Enabled', .f., 'OptionButton') + This.SetAll('DisabledForecolor', Rgb(210,210,210), 'OptionButton') + Endif + + + DoDefault() + + ENDPROC + + PROCEDURE pfSettings.pageReplace.Refresh + this.Parent.pageBackups.Enabled = Thisform.oSearchOptions.lEnableReplaceMode + + DoDefault() + ENDPROC + +ENDDEFINE diff --git a/Source/Forms/gofish_options.sc2 b/Source/Forms/gofish_options.sc2 index 02b0477..3364779 100644 --- a/Source/Forms/gofish_options.sc2 +++ b/Source/Forms/gofish_options.sc2 @@ -1,1758 +1,11 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_options.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS gf_options AS gf_baseform OF "..\lib\gofishui.vcx" - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="pfSettings" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageColumns.containerColumnCheckBoxes" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageColumns.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageColumns.cmdSelectAll" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageColumns.cmdClearAll" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Shape1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.cboDockable" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Spinner1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Spinner2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label6" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Spinner3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check6" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label7" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Spinner4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.cmdZoomDefault" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check7" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Check8" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Command1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label8" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Spinner5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Label9" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pagePreferences.Spinner6" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.List1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.cmdOpenFolder" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label6" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label7" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.cmdDeleteConfigFiles" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageAdvanced.Label8" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageThor.Label4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageThor.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageThor.lblNoTHor" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageThor.Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.optiongroupReplaceSafetyLevel" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Image1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Label3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Check1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Check2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Label4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Label5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.Text2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageReplace.cmdOpenFolder" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Check1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Label5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.pageBackups.Command2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page1.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page1.Label4" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page1.Label5" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page1.Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page1.Image1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page1.Label3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page2.Label2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page2.Spinner1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page2.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page2.Spinner2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="pfSettings.Page2.Label3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cmdOK" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cmdCancel" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Gf_versionlabel1" UniqueID="" Timestamp="" /> - - * - *m: applycolumnsettings - *m: buildcolumncheckboxes - *m: loadoptions - *m: loadresultsformproperties - *m: saveoptions - *m: validate - *p: dlastjanitorrundate - *p: lrestoreprevioussearchresultsonstartup - *p: lreturn - *p: lsavesearchresults - *p: lwarnwholeword - *p: ndockable - *p: njanitorreplacehistorydays - *p: njanitorsearchhistorydays - *p: nreplacerisk - *p: ntabstospaces - *p: ntreeviewfontsize - *p: ooptions && A reference to the oSearchOptions object on GF main form. - * - - AlwaysOnTop = .T. - BorderStyle = 3 - Caption = "GoFish Options" - dlastjanitorrundate = / / - DoCreate = .T. - Height = 570 - KeyPreview = .T. - Left = 14 - lrestoreprevioussearchresultsonstartup = .F. - lreturn = .F. - lsavesearchresults = .T. - lwarnwholeword = .F. - MinHeight = 450 - MinWidth = 650 - Name = "GF_Options" - ndockable = 0 - njanitorreplacehistorydays = 0 - njanitorsearchhistorydays = 0 - nreplacerisk = 0 - ntabstospaces = 0 - ntreeviewfontsize = 8 - oform = .NULL. - ooptions = .NULL. && A reference to the oSearchOptions object on GF main form. - Top = 7 - Visible = .T. - Width = 652 - WindowType = 1 - _memberdata = - - - - - - - - - - - - - - - - - - - - - - - - - - - ADD OBJECT 'cmdCancel' AS commandbutton WITH ; - Anchor = 12, ; - Caption = "Cancel", ; - Height = 21, ; - Left = 573, ; - Name = "cmdCancel", ; - Top = 547, ; - Width = 70 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'cmdOK' AS commandbutton WITH ; - Anchor = 12, ; - Caption = "OK", ; - Height = 21, ; - Left = 496, ; - Name = "cmdOK", ; - Top = 547, ; - Width = 70 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'Gf_versionlabel1' AS gf_versionlabel WITH ; - Left = 415, ; - Name = "Gf_versionlabel1", ; - Top = 1 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="label" /> - - ADD OBJECT 'pfSettings' AS pageframe WITH ; - ActivePage = 1, ; - Anchor = 15, ; - ErasePage = .T., ; - Height = 528, ; - Left = 8, ; - Name = "pfSettings", ; - PageCount = 8, ; - TabStyle = 0, ; - Top = 18, ; - Width = 638, ; - Page1.Caption = "Column Selection", ; - Page1.Name = "pageColumns", ; - Page1.PageOrder = 2, ; - Page2.Caption = "Preferences", ; - Page2.Name = "pagePreferences", ; - Page2.PageOrder = 1, ; - Page3.Caption = "Advanced", ; - Page3.Name = "pageAdvanced", ; - Page3.PageOrder = 3, ; - Page4.Caption = "Thor", ; - Page4.Name = "pageThor", ; - Page4.PageOrder = 6, ; - Page5.Caption = "Replace", ; - Page5.Name = "pageReplace", ; - Page5.PageOrder = 4, ; - Page6.Caption = "Backups", ; - Page6.Name = "pageBackups", ; - Page6.PageOrder = 5, ; - Page7.Caption = "Update", ; - Page7.Name = "Page1", ; - Page7.PageOrder = 7, ; - Page8.Caption = "Janitor", ; - Page8.Name = "Page2", ; - Page8.PageOrder = 8 - *< END OBJECT: BaseClass="pageframe" /> - - ADD OBJECT 'pfSettings.Page1.Image1' AS image WITH ; - Height = 230, ; - Left = 207, ; - Name = "Image1", ; - Picture = ..\images\checkforupdates.jpg, ; - Top = 120, ; - Width = 232 - *< END OBJECT: BaseClass="image" /> - - ADD OBJECT 'pfSettings.Page1.Label1' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "If you are running the Thor Tool Management Framework, you can download and install the latest development builds of GoFish at any time, right from the Thor menu. (Requires Thor 1.10 or higher).", ; - Height = 57, ; - Left = 17, ; - Name = "Label1", ; - Top = 28, ; - Width = 591, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.Page1.Label2' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "The latest development build may be a pre-release version, allowing you to use and test the latest version.", ; - Height = 57, ; - Left = 17, ; - Name = "Label2", ; - Top = 76, ; - Width = 591, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.Page1.Label3' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Learn more about Thor", ; - FontUnderline = .T., ; - ForeColor = 0,0,255, ; - Height = 17, ; - Left = 17, ; - MousePointer = 15, ; - Name = "Label3", ; - Top = 93, ; - Width = 128 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.Page1.Label4' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "Note: Public releases of GoFish are available at the VFPx site. However, the release cycle is generally slower on VFPx. If you want the absolute latest build, use the Thor update mechanism shown above.", ; - Height = 56, ; - Left = 20, ; - Name = "Label4", ; - Top = 385, ; - Width = 555, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.Page1.Label5' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Visit the GoFish project on VFPx", ; - FontUnderline = .T., ; - ForeColor = 0,0,255, ; - Height = 17, ; - Left = 20, ; - MousePointer = 15, ; - Name = "Label5", ; - Top = 422, ; - Width = 175 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.Page2.Label1' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "# of days of Replace history to keep", ; - Height = 17, ; - Left = 105, ; - Name = "Label1", ; - TabIndex = 19, ; - Top = 97, ; - Width = 195 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.Page2.Label2' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "# of days of Search history to keep", ; - Height = 17, ; - Left = 105, ; - Name = "Label2", ; - TabIndex = 19, ; - Top = 55, ; - Width = 188 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.Page2.Label3' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "The janitor shows up once a day to clean up leftover files.", ; - FontSize = 10, ; - Height = 18, ; - Left = 28, ; - Name = "Label3", ; - TabIndex = 19, ; - Top = 20, ; - Width = 332 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.Page2.Spinner1' AS spinner WITH ; - ControlSource = "Thisform.nJanitorSearchHistoryDays", ; - Height = 27, ; - KeyboardHighValue = 999999, ; - KeyboardLowValue = 0, ; - Left = 27, ; - Name = "Spinner1", ; - SpinnerHighValue = 999999.00, ; - SpinnerLowValue = 0.00, ; - TabIndex = 10, ; - Top = 50, ; - Width = 69 - *< END OBJECT: BaseClass="spinner" /> - - ADD OBJECT 'pfSettings.Page2.Spinner2' AS spinner WITH ; - ControlSource = "Thisform.nJanitorReplaceHistoryDays", ; - Height = 27, ; - KeyboardHighValue = 999999, ; - KeyboardLowValue = 0, ; - Left = 27, ; - Name = "Spinner2", ; - SpinnerHighValue = 999999.00, ; - SpinnerLowValue = 0.00, ; - TabIndex = 10, ; - Top = 92, ; - Width = 69 - *< END OBJECT: BaseClass="spinner" /> - - ADD OBJECT 'pfSettings.pageAdvanced.cmdDeleteConfigFiles' AS commandbutton WITH ; - Caption = "Delete config files!", ; - Height = 19, ; - Left = 23, ; - Name = "cmdDeleteConfigFiles", ; - Top = 401, ; - Width = 114 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pfSettings.pageAdvanced.cmdOpenFolder' AS commandbutton WITH ; - Caption = "Open Folder", ; - Height = 21, ; - Left = 25, ; - Name = "cmdOpenFolder", ; - Top = 292, ; - Width = 80 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pfSettings.pageAdvanced.Label1' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "Configuration settings for GoFish are maintained in these XML files. See GoFish Help for more information.", ; - Height = 32, ; - Left = 255, ; - Name = "Label1", ; - Top = 20, ; - Width = 349, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageAdvanced.Label2' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "Path to XML files:", ; - Height = 25, ; - Left = 12, ; - Name = "Label2", ; - Top = 251, ; - Width = 318, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageAdvanced.Label3' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "Path to XML files will be shown here. See Init() method of this label.", ; - Height = 32, ; - Left = 23, ; - Name = "Label3", ; - Top = 272, ; - Width = 596, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageAdvanced.Label4' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "Double-Click to view or edit any file.", ; - Height = 32, ; - Left = 255, ; - Name = "Label4", ; - Top = 137, ; - Width = 349, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageAdvanced.Label5' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "Close GoFish and delete any file to restore that portion of GoFish to the default state. A new XML file will be built automatically.", ; - Height = 32, ; - Left = 255, ; - Name = "Label5", ; - Top = 176, ; - Width = 349, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageAdvanced.Label6' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "The files are maintained automatically by GoFish to maintain settings between sessions.", ; - Height = 32, ; - Left = 255, ; - Name = "Label6", ; - Top = 59, ; - Width = 349, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageAdvanced.Label7' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "If you are curious you may view these files, or if you have special needs you may edit them.", ; - Height = 32, ; - Left = 255, ; - Name = "Label7", ; - Top = 98, ; - Width = 349, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageAdvanced.Label8' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "You can reset GoFish by deleting its config files. New config files will be built upon exit.", ; - ForeColor = 255,0,0, ; - Height = 32, ; - Left = 142, ; - Name = "Label8", ; - Top = 404, ; - Width = 596, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageAdvanced.List1' AS listbox WITH ; - Height = 227, ; - Left = 12, ; - Name = "List1", ; - RowSourceType = 7, ; - Top = 17, ; - Width = 236 - *< END OBJECT: BaseClass="listbox" /> - - ADD OBJECT 'pfSettings.pageBackups.Check1' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Backup source files when performing Replace operations.", ; - ControlSource = "Thisform.oSearchOptions.lBackup", ; - Height = 17, ; - Left = 18, ; - Name = "Check1", ; - Top = 119, ; - Width = 336 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pageBackups.Command2' AS commandbutton WITH ; - Caption = "Open Folder", ; - Height = 21, ; - Left = 132, ; - Name = "Command2", ; - Top = 220, ; - Width = 80 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pfSettings.pageBackups.Label1' AS label WITH ; - BackStyle = 0, ; - Caption = "GoFish can create backups of files on which you perform a Replace operation. The backup files are stored in the folder path Home(7) \ GoFishBackps \ \ where is the Replace History Id that is assigned to each replace operation.", ; - Height = 45, ; - Left = 18, ; - Name = "Label1", ; - Top = 18, ; - Width = 600, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageBackups.Label2' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "See the GoFish Backup Help page for more info.", ; - FontUnderline = .T., ; - ForeColor = 0,0,255, ; - Height = 17, ; - Left = 51, ; - MousePointer = 15, ; - Name = "Label2", ; - Top = 152, ; - Width = 266 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageBackups.Label3' AS label WITH ; - BackStyle = 0, ; - Caption = "You can map the folder reference to the Replace History log to view complete details of each replace operation.", ; - Height = 45, ; - Left = 18, ; - Name = "Label3", ; - Top = 73, ; - Width = 600, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageBackups.Label4' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "Path to Backup files:", ; - Height = 25, ; - Left = 15, ; - Name = "Label4", ; - Top = 224, ; - Width = 318, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageBackups.Label5' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "Path to backup files will be shown here. See Init() method of this label.", ; - Height = 32, ; - Left = 26, ; - Name = "Label5", ; - Top = 248, ; - Width = 596, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageColumns.cmdClearAll' AS commandbutton WITH ; - Caption = "Clear All", ; - FontSize = 8, ; - Height = 26, ; - Left = 21, ; - Name = "cmdClearAll", ; - Top = 98, ; - Width = 58 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pfSettings.pageColumns.cmdSelectAll' AS commandbutton WITH ; - Caption = "Select All", ; - FontSize = 8, ; - Height = 26, ; - Left = 21, ; - Name = "cmdSelectAll", ; - Top = 56, ; - Width = 58 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pfSettings.pageColumns.containerColumnCheckBoxes' AS container WITH ; - Anchor = 5, ; - Height = 431, ; - Left = 14, ; - Name = "containerColumnCheckBoxes", ; - Top = 46, ; - Width = 526 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'pfSettings.pageColumns.Label1' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "Choose which columns you want to appear in the search results grid.", ; - FontBold = .T., ; - Height = 28, ; - Left = 15, ; - Name = "Label1", ; - Top = 14, ; - Width = 470, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.cboDockable' AS combobox WITH ; - BoundColumn = 2, ; - BoundTo = .T., ; - ColumnCount = 2, ; - ColumnWidths = "300,0", ; - ControlSource = "Thisform.nDockable", ; - Height = 22, ; - Left = 79, ; - Name = "cboDockable", ; - RowSource = "0 - Does not support docking,0,1 - Supports docking and is dockable,1,2 - Supports docking and is not dockable,2", ; - RowSourceType = 1, ; - Style = 2, ; - TabIndex = 1, ; - Top = 29, ; - Width = 305 - *< END OBJECT: BaseClass="combobox" /> - - ADD OBJECT 'pfSettings.pagePreferences.Check1' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Display dialog when files cannot be found or opened during a search or replace", ; - ControlSource = "Thisform.oSearchOptions.lShowErrorMessages", ; - Height = 17, ; - Left = 27, ; - Name = "Check1", ; - TabIndex = 2, ; - Top = 87, ; - Width = 452 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pagePreferences.Check2' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Display each filename as it is processed (slows down search)", ; - ControlSource = "Thisform.oSearchOptions.lShowWaitMessages", ; - Height = 17, ; - Left = 27, ; - Name = "Check2", ; - TabIndex = 4, ; - Top = 133, ; - Width = 359 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pagePreferences.Check3' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Display dialog box if no matches are found during a search.", ; - ControlSource = "Thisform.oSearchOptions.lShowNoMatchesMessage", ; - Height = 17, ; - Left = 27, ; - Name = "Check3", ; - TabIndex = 3, ; - Top = 110, ; - Width = 342 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pagePreferences.Check4' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Show Advanced Search form on startup", ; - ControlSource = "Thisform.oSearchOptions.lShowAdvancedFormOnStartup", ; - Height = 17, ; - Left = 28, ; - Name = "Check4", ; - TabIndex = 6, ; - Top = 193, ; - Width = 233 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pagePreferences.Check5' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Clear 'Apply Filter' checkbox with each new search", ; - ControlSource = "Thisform.lClearApplyFilter", ; - Height = 17, ; - Left = 28, ; - Name = "Check5", ; - TabIndex = 7, ; - Top = 216, ; - Width = 290 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pagePreferences.Check6' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Always confirm use of Whole Word search?", ; - ControlSource = "Thisform.lWarnWholeWord", ; - Height = 17, ; - Left = 28, ; - Name = "Check6", ; - TabIndex = 5, ; - Top = 157, ; - Width = 255 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pagePreferences.Check7' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Restore previous search results on startup", ; - ControlSource = "Thisform.lRestorePreviousSearchResultsOnStartup", ; - Height = 17, ; - Left = 28, ; - Name = "Check7", ; - TabIndex = 9, ; - Top = 263, ; - Width = 252 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pagePreferences.Check8' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Save each search results to search history folder.", ; - ControlSource = "Thisform.lSaveSearchResults", ; - Height = 17, ; - Left = 28, ; - Name = "Check8", ; - TabIndex = 8, ; - Top = 239, ; - Width = 287 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pagePreferences.cmdZoomDefault' AS commandbutton WITH ; - Caption = "Default 1.0", ; - FontSize = 8, ; - Height = 22, ; - Left = 308, ; - Name = "cmdZoomDefault", ; - TabIndex = 16, ; - Top = 330, ; - Width = 71 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pfSettings.pagePreferences.Command1' AS commandbutton WITH ; - Caption = " Open Folder", ; - Height = 25, ; - Left = 337, ; - Name = "Command1", ; - Picture = ..\..\2015-10-25 beta jrn\images\browsefolder.bmp, ; - PicturePosition = 1, ; - SpecialEffect = 0, ; - ToolTipText = "Open Explorer window to this path.", ; - Top = 235, ; - Width = 118 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pfSettings.pagePreferences.Label1' AS label WITH ; - BackStyle = 0, ; - Caption = "Dockable", ; - Height = 24, ; - Left = 21, ; - Name = "Label1", ; - TabIndex = 17, ; - Top = 32, ; - Width = 69 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.Label2' AS label WITH ; - BackStyle = 0, ; - Caption = "Grid font size", ; - Height = 18, ; - Left = 88, ; - Name = "Label2", ; - TabIndex = 19, ; - Top = 302, ; - Width = 103 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.Label3' AS label WITH ; - BackStyle = 0, ; - Caption = "DisplayCount for Search/Scope history dropdowns", ; - Height = 18, ; - Left = 88, ; - Name = "Label3", ; - TabIndex = 22, ; - Top = 364, ; - Width = 311 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.Label4' AS label WITH ; - AutoSize = .T., ; - BackColor = 255,255,255, ; - BackStyle = 1, ; - Caption = " Messages / Dialogs", ; - Height = 17, ; - Left = 33, ; - Name = "Label4", ; - TabIndex = 20, ; - Top = 65, ; - Width = 115 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.Label5' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Maximum number of results to find", ; - Height = 17, ; - Left = 84, ; - Name = "Label5", ; - TabIndex = 21, ; - ToolTipText = "Search will automatically stop once this number of mached lines it reached.", ; - Top = 434, ; - Width = 191 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.Label6' AS label WITH ; - BackStyle = 0, ; - Caption = "Number of items in each MRU list for Search/Scope dropdowns", ; - Height = 18, ; - Left = 88, ; - Name = "Label6", ; - TabIndex = 23, ; - Top = 395, ; - Width = 396 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.Label7' AS label WITH ; - BackStyle = 0, ; - Caption = "Code Browser zoom factor (0.7 - 2.00)", ; - Height = 18, ; - Left = 88, ; - Name = "Label7", ; - TabIndex = 18, ; - Top = 333, ; - Width = 217 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.Label8' AS label WITH ; - BackStyle = 0, ; - Caption = "TreeView font size", ; - Height = 18, ; - Left = 290, ; - Name = "Label8", ; - TabIndex = 13, ; - Top = 303, ; - Width = 103 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.Label9' AS label WITH ; - BackStyle = 0, ; - Caption = "Tabs to spaces", ; - Height = 18, ; - Left = 482, ; - Name = "Label9", ; - TabIndex = 13, ; - Top = 334, ; - Width = 103 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pagePreferences.Shape1' AS shape WITH ; - BackStyle = 0, ; - Curvature = 3, ; - Height = 111, ; - Left = 17, ; - Name = "Shape1", ; - Top = 73, ; - Width = 534 - *< END OBJECT: BaseClass="shape" /> - - ADD OBJECT 'pfSettings.pagePreferences.Spinner1' AS spinner WITH ; - ControlSource = "Thisform.nGridFontSize", ; - Height = 27, ; - KeyboardHighValue = 24, ; - KeyboardLowValue = 6, ; - Left = 23, ; - Name = "Spinner1", ; - SpinnerHighValue = 24.00, ; - SpinnerLowValue = 6.00, ; - TabIndex = 10, ; - Top = 297, ; - Width = 59 - *< END OBJECT: BaseClass="spinner" /> - - ADD OBJECT 'pfSettings.pagePreferences.Spinner2' AS spinner WITH ; - ControlSource = "Thisform.nDropDownDisplayCount", ; - Height = 27, ; - KeyboardHighValue = 100, ; - KeyboardLowValue = 5, ; - Left = 23, ; - Name = "Spinner2", ; - SpinnerHighValue = 100.00, ; - SpinnerLowValue = 5.00, ; - TabIndex = 12, ; - Top = 359, ; - Width = 59 - *< END OBJECT: BaseClass="spinner" /> - - ADD OBJECT 'pfSettings.pagePreferences.Spinner3' AS spinner WITH ; - ControlSource = "Thisform.nDropDownMaxMRU", ; - Height = 27, ; - KeyboardHighValue = 100, ; - KeyboardLowValue = 1, ; - Left = 23, ; - Name = "Spinner3", ; - SpinnerHighValue = 100.00, ; - SpinnerLowValue = 1.00, ; - TabIndex = 13, ; - Top = 390, ; - Width = 59 - *< END OBJECT: BaseClass="spinner" /> - - ADD OBJECT 'pfSettings.pagePreferences.Spinner4' AS spinner WITH ; - ControlSource = "Thisform.nBrowserZoom", ; - Height = 27, ; - Increment = 0.10, ; - InputMask = "9.99", ; - KeyboardLowValue = 0, ; - Left = 23, ; - Name = "Spinner4", ; - SpinnerHighValue = 2.00, ; - SpinnerLowValue = 0.70, ; - TabIndex = 11, ; - Top = 328, ; - Value = 0.1, ; - Width = 59 - *< END OBJECT: BaseClass="spinner" /> - - ADD OBJECT 'pfSettings.pagePreferences.Spinner5' AS spinner WITH ; - ControlSource = "Thisform.nTreeViewFontSize", ; - Height = 27, ; - KeyboardHighValue = 24, ; - KeyboardLowValue = 6, ; - Left = 225, ; - Name = "Spinner5", ; - SpinnerHighValue = 24.00, ; - SpinnerLowValue = 6.00, ; - TabIndex = 8, ; - Top = 298, ; - Width = 59 - *< END OBJECT: BaseClass="spinner" /> - - ADD OBJECT 'pfSettings.pagePreferences.Spinner6' AS spinner WITH ; - ControlSource = "Thisform.nTabsToSpaces", ; - Height = 27, ; - KeyboardHighValue = 10, ; - KeyboardLowValue = 0, ; - Left = 417, ; - Name = "Spinner6", ; - SpinnerHighValue = 10.00, ; - SpinnerLowValue = 0.00, ; - TabIndex = 8, ; - Top = 329, ; - Width = 59 - *< END OBJECT: BaseClass="spinner" /> - - ADD OBJECT 'pfSettings.pagePreferences.Text1' AS textbox WITH ; - ControlSource = "Thisform.oSearchOptions.nMaxResults", ; - Height = 25, ; - InputMask = "9999999", ; - Left = 22, ; - Name = "Text1", ; - TabIndex = 14, ; - Top = 430, ; - Width = 59 - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'pfSettings.pageReplace.Check1' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Enable Replace Mode", ; - ControlSource = "Thisform.oSearchOptions.lEnableReplaceMode", ; - Height = 17, ; - Left = 10, ; - Name = "Check1", ; - Top = 5, ; - Width = 139 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pageReplace.Check2' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Do not show replace warning dialog box with each replace", ; - ControlSource = "Thisform.oSearchOptions.lDoNotShowReplaceWarning", ; - Height = 17, ; - Left = 7, ; - Name = "Check2", ; - Top = 421, ; - Width = 336 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'pfSettings.pageReplace.cmdOpenFolder' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "Open Folder", ; - Height = 21, ; - Left = 550, ; - Name = "cmdOpenFolder", ; - Top = 421, ; - Width = 80 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'pfSettings.pageReplace.Image1' AS image WITH ; - Height = 296, ; - Left = 4, ; - Name = "Image1", ; - Picture = ..\images\replacelevels.bmp, ; - Stretch = 0, ; - Top = 124, ; - Width = 619 - *< END OBJECT: BaseClass="image" /> - - ADD OBJECT 'pfSettings.pageReplace.Label1' AS label WITH ; - BackStyle = 0, ; - Caption = "Warning: There are many risks associated with tools that replace code on your source files. Please review the GoFish Code Replacement Guide to be sure you understand how to use GoFish to replace code, and what the risks are.", ; - ForeColor = 255,0,0, ; - Height = 45, ; - Left = 8, ; - Name = "Label1", ; - Top = 26, ; - Width = 582, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageReplace.Label2' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "See the GoFish Replace Help page for more info.", ; - FontUnderline = .T., ; - ForeColor = 0,0,255, ; - Height = 17, ; - Left = 126, ; - MousePointer = 15, ; - Name = "Label2", ; - Top = 56, ; - Width = 271 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageReplace.Label3' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Select the maximum Replace Risk level to enable in the results grid:", ; - FontBold = .T., ; - Height = 17, ; - Left = 10, ; - Name = "Label3", ; - Top = 79, ; - Width = 385 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageReplace.Label4' AS label WITH ; - AutoSize = .F., ; - BackStyle = 0, ; - Caption = "Replace Detail Table:", ; - Height = 19, ; - Left = 6, ; - Name = "Label4", ; - Top = 446, ; - Width = 121, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageReplace.Label5' AS label WITH ; - AutoSize = .F., ; - BackStyle = 0, ; - Caption = "Replace History Table:", ; - Height = 19, ; - Left = 6, ; - Name = "Label5", ; - Top = 473, ; - Width = 126, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageReplace.optiongroupReplaceSafetyLevel' AS optiongroup WITH ; - ButtonCount = 3, ; - ControlSource = "Thisform.nReplaceRisk", ; - Height = 25, ; - Left = 121, ; - Name = "optiongroupReplaceSafetyLevel", ; - Top = 100, ; - Value = 0, ; - Width = 355, ; - Option1.AutoSize = .T., ; - Option1.BackStyle = 0, ; - Option1.Caption = "1= Pretty Safe", ; - Option1.Height = 17, ; - Option1.Left = 8, ; - Option1.Name = "Option2", ; - Option1.Top = 4, ; - Option1.Width = 93, ; - Option2.AutoSize = .T., ; - Option2.BackStyle = 0, ; - Option2.Caption = "2 = Kinda Safe", ; - Option2.Height = 17, ; - Option2.Left = 121, ; - Option2.Name = "Option3", ; - Option2.Top = 4, ; - Option2.Width = 98, ; - Option3.AutoSize = .T., ; - Option3.BackStyle = 0, ; - Option3.Caption = "3 = Dangerous", ; - Option3.Height = 17, ; - Option3.Left = 246, ; - Option3.Name = "Option4", ; - Option3.Top = 4, ; - Option3.Width = 100 - *< END OBJECT: BaseClass="optiongroup" /> - - ADD OBJECT 'pfSettings.pageReplace.Text1' AS textbox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.oSearchEngine.cReplaceDetailTable", ; - Enabled = .F., ; - Height = 25, ; - Left = 132, ; - Name = "Text1", ; - ReadOnly = .T., ; - TabIndex = 14, ; - Top = 443, ; - Width = 498 - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'pfSettings.pageReplace.Text2' AS textbox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.oSearchEngine.cReplaceHistoryTable", ; - Enabled = .F., ; - Height = 25, ; - Left = 132, ; - Name = "Text2", ; - ReadOnly = .T., ; - TabIndex = 14, ; - Top = 470, ; - Width = 498 - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'pfSettings.pageThor.Label1' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "GoFish will be automatically registered with Thor if it is present. This will provide a way to assign a hotkey to launch Gofish, as well as expose classes for advanced uses of GoFish.", ; - Height = 32, ; - Left = 38, ; - Name = "Label1", ; - Top = 25, ; - Width = 555, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageThor.Label2' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Learn more about Thor", ; - FontUnderline = .T., ; - ForeColor = 0,0,255, ; - Height = 17, ; - Left = 412, ; - MousePointer = 15, ; - Name = "Label2", ; - Top = 68, ; - Width = 128 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageThor.Label4' AS label WITH ; - Anchor = 10, ; - BackStyle = 0, ; - Caption = "You can learn more about Thor at the VFPX.CodePlex.com website.", ; - Height = 32, ; - Left = 38, ; - Name = "Label4", ; - Top = 68, ; - Width = 398, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'pfSettings.pageThor.lblNoTHor' AS label WITH ; - Alignment = 2, ; - Anchor = 256, ; - BackStyle = 0, ; - Caption = "Thor is not presently running on your system.", ; - ForeColor = 255,0,0, ; - Height = 17, ; - Left = 38, ; - Name = "lblNoTHor", ; - Top = 105, ; - Visible = .F., ; - Width = 245, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - PROCEDURE Activate - Thisform.Refresh() - ENDPROC - - PROCEDURE applycolumnsettings - Local lcControlSourceField, loColumn, loControl - - *-- Set .Visible property on the Results form grid columns - For each loControl in Thisform.pfSettings.pageColumns.containerColumnCheckBoxes.Controls - lcControlSourceField = loControl.tag - loColumn = Thisform.oForm.oGrid.FindColumn(lcControlSourceField) - loColumn.Visible = Iif(loControl.value = 1, .t., .f.) - EndFor - ENDPROC - - PROCEDURE buildcolumncheckboxes - Local laFieldNames[1], lcName, llAlreadyAdded, lnContainerHeight, lnCount, lnRow, lnTop - Local lnVerticalSpacing, lnX, lnY, loCheckBox, loColumn, loContainerCheckBoxes, loPageframe - - lnY = 12 - lnX = 90 - - lnVerticalSpacing = 18 - llAlreadyAdded = .F. - - loPageframe = Thisform.pfSettings - loContainerCheckBoxes = m.loPageframe.pageColumns.containerColumnCheckBoxes - lnContainerHeight = m.loContainerCheckBoxes.Height - - Dimension m.laFieldNames[This.oForm.oGrid.ColumnCount, 4] - - For Each m.loColumn In This.oForm.oGrid.Columns FoxObject - lnRow = m.loColumn.ColumnOrder - laFieldNames[lnRow, 1] = iif(m.loColumn.Visible, 'A' + Str(lnRow, 4, 0), 'B' + Upper(m.loColumn.Header1.Caption)) - laFieldNames[lnRow, 2] = m.loColumn.Visible - laFieldNames[lnRow, 3] = m.loColumn.Header1.Caption - laFieldNames[lnRow, 4] = m.loColumn.Header1.Tag - Endfor - - Asort(m.laFieldNames, 1, -1) - - lnTop = m.lnY - - For lnCount = 1 To Alen(m.laFieldNames, 1) - - lcName = 'CheckBox_' + Alltrim(Str(m.lnCount)) - Try - m.loContainerCheckBoxes.RemoveObject(m.lcName) - Catch - Endtry - m.loContainerCheckBoxes.AddObject(m.lcName, 'CheckBox') - loCheckBox = m.loContainerCheckBoxes.&lcName - - With m.loCheckBox - .Caption = m.laFieldNames[m.lnCount, 3] - .Tag = m.laFieldNames[m.lnCount, 4] && Holds the control source!!! - .Value = Iif(m.laFieldNames[m.lnCount, 2] = .T., 1, 0) - .Visible = .T. - .AutoSize = .T. - - If m.lnTop + m.lnVerticalSpacing > m.lnContainerHeight - 12 - lnTop = m.lnY - lnX = m.lnX + 200 - Endif - - .Left = m.lnX - .Top = m.lnTop - .TabIndex = m.lnCount - lnTop = m.lnTop + m.lnVerticalSpacing - Endwith - - Endfor - - - ENDPROC - - PROCEDURE Destroy - DoDefault() - - If this.lReturn = .t. - ThisForm.SaveOptions() - Endif - - ENDPROC - - PROCEDURE Init - Lparameters toForm - - If VarType(m.toForm) != 'O' - Messagebox('Must pass a reference to GoFish Results Form when calling this form.', 0, 'GoFish') - Return .F. - Endif - - This.MinHeight = This.Height - This.MaxHeight = Int(This.Height * 1.5) - This.MinWidth = This.Width - This.MaxWidth = Int(This.Width * 1.5) - - DoDefault(m.toForm) - - Thisform.LoadOptions() - - Thisform.pfSettings.pageBackups.Enabled = Thisform.oSearchOptions.lEnableReplaceMode - - Thisform.Refresh() - - ENDPROC - - PROCEDURE KeyPress - LPARAMETERS nKeyCode, nShiftAltCtrl - - If nKeyCOde = 27 - Thisform.Release - Endif - - ENDPROC - - PROCEDURE loadformsettings - This.MinHeight = This.Height - This.MinWidth = This.Width - - DoDefault() - ENDPROC - - PROCEDURE loadoptions - This.oSearchOptions = This.CopyObjectProperties(This.oSearchOptions, CreateObject('GoFishSearchOptions')) - - Thisform.LoadResultsFormProperties() - - This.BuildColumnCheckBoxes() - ENDPROC - - PROCEDURE loadresultsformproperties - Local laProperties[1], lcProperty, lcXmlSettingsFile - - lcXmlSettingsFile = Thisform.cUISettingsFile - - *-- Get an array of Custom Form-level properties that are on the Restults form. - *-- Store them in the corresponding local Form properties here, if present. - AMembers(laProperties, Thisform.oForm, 0, 'U') - - *--- Import Custom properties from oForm to ThisForm - For x = 1 to Alen(laProperties) - lcProperty = laProperties[x] - AddProperty(this, lcProperty) - Try - Store Evaluate('Thisform.oForm.' + lcProperty) to ('Thisform.' + lcProperty) - Catch - EndTry - Endfor - - Thisform.cUISettingsFile = lcXmlSettingsFile && Must restore, since above trick overwrite this important setting - - Thisform.nDockable = Thisform.oForm.Dockable - - Thisform.nReplaceRisk = Evl(Thisform.oForm.nReplaceRisk, 1) - - - ENDPROC - - PROCEDURE saveoptions - *-- Transfer Search Engine settings back to Results Form Search Engine instance - Local laProperties[1] - - This.CopyObjectProperties(This.oSearchOptions, Thisform.oSearchEngine.oSearchOptions) - - This.ApplyColumnSettings() - - *-- Transfer certain settings from Thisform back to the Search Results Form - With Thisform.oForm - .Dockable = Thisform.nDockable - .nGridFontSize = Thisform.nGridFontSize - .nTreeViewFontSize = Thisform.nTreeViewFontSize - .nTabsToSpaces = Thisform.nTabsToSpaces - .nDropDownDisplayCount = Thisform.nDropDownDisplayCount - .nDropDownMaxMRU = Thisform.nDropDownMaxMRU - .nReplaceRisk = Evl(Thisform.nReplaceRisk, 1) - .lClearApplyFilter = Thisform.lClearApplyFilter - .lWarnWholeWord = Thisform.lWarnWholeWord - .nBrowserZoom = Thisform.nBrowserZoom - .Containerright.Container2.containerWebControl.nZoom = Thisform.nBrowserZoom - .lRestorePreviousSearchResultsOnStartup = Thisform.lRestorePreviousSearchResultsOnStartup - .lSaveSearchResults = Thisform.lSaveSearchResults - - .nJanitorSearchHistoryDays = Thisform.nJanitorSearchHistoryDays - .nJanitorReplaceHistoryDays = Thisform.nJanitorReplaceHistoryDays - .dLastJanitorRunDate = Thisform.dLastJanitorRunDate - Endwith - - - ENDPROC - - PROCEDURE validate - Local llAtLeastOneColumnSelected, loControl - - llAtLeastOneColumnSelected = .f. - - For each loControl in thisform.pfSettings.pageColumns.containerColumnCheckBoxes.Controls - If loControl.value = 1 - llAtLeastOneColumnSelected = .t. - Endif - EndFor - - If !llAtLeastOneColumnSelected - MessageBox('Please select at least one column to display in the grid.', 0, 'Notice:') - thisform.pfSettings.ActivePage = 1 - Return .f. - Endif - - - ENDPROC - - PROCEDURE cmdCancel.Click - Thisform.lReturn = .f. - - thisform.Release() - ENDPROC - - PROCEDURE cmdOK.Click - If Thisform.Validate() - Thisform.lReturn = .t. - Thisform.Release() - Endif - - - - - - ENDPROC - - PROCEDURE pfSettings.Page1.Label3.Click - Shell('http://vfpx.codeplex.com/wikipage?title=Thor') - - ENDPROC - - PROCEDURE pfSettings.Page1.Label5.Click - Shell('http://vfpx.codeplex.com/wikipage?title=GoFish') - - ENDPROC - - PROCEDURE pfSettings.Page2.Spinner1.Valid - Thisform.dLastJanitorRunDate = {} - ENDPROC - - PROCEDURE pfSettings.Page2.Spinner2.Valid - Thisform.dLastJanitorRunDate = {} - ENDPROC - - PROCEDURE pfSettings.pageAdvanced.cmdDeleteConfigFiles.Click - Local lcFilesToDelete, lcPath, lnResponse - - lcPath = '"' + Addbs(Home(7)) + '"' - - lcFilesToDelete = Addbs(lcPath) + 'gf_*.xml' - - lnResponse = MessageBox('Are you sure you want to reset GoFish by erasing config files?',3, 'Erase config files?') - - If lnResponse = 6 - Delete File (lcFilesToDelete) - EndIf - - This.Parent.list1.Requery() - - - - - - ENDPROC - - PROCEDURE pfSettings.pageAdvanced.cmdOpenFolder.Click - lcPath = '"' + Addbs(Home(7)) + '"' - OpenExplorerWindow(lcPath) - ENDPROC - - PROCEDURE pfSettings.pageAdvanced.Label3.Init - This.Caption = 'Home(7) = ' + Proper(Addbs(Home(7))) - ENDPROC - - PROCEDURE pfSettings.pageAdvanced.List1.Click - Local lnIndex - - lnIndex = this.ListIndex - lcValue = This.value - - If !('.XML' $ Upper(This.value)) - This.Init() && Reset RecordSource - This.Requery() - Endif - - This.Value = lcValue - ENDPROC - - PROCEDURE pfSettings.pageAdvanced.List1.DblClick - lcFile = '"' + Addbs(Home(7)) + this.Value + '"' - - If 'GF_' $ Upper(lcFile) and Upper(JustExt(lcFile)) = 'XML' - Run /n "notepad" &lcFile - Else - This.Init() && Reset RecordSource - This.Requery() - Endif - ENDPROC - - PROCEDURE pfSettings.pageAdvanced.List1.Init - This.RowSource = Addbs(Home(7)) + 'GF_*.xml' - ENDPROC - - PROCEDURE pfSettings.pageBackups.Check1.Click - DoDefault() - - This.Parent.Refresh() - ENDPROC - - PROCEDURE pfSettings.pageBackups.Command2.Click - lcPath = '"' + Addbs(Home(7) + 'GoFishBackups') + '"' - OpenExplorerWindow(lcPath) - ENDPROC - - PROCEDURE pfSettings.pageBackups.Label2.Click - Shell('http://vfpx.codeplex.com/wikipage?title=GoFish%20Backup%20Help') - - ENDPROC - - PROCEDURE pfSettings.pageBackups.Label5.Init - This.Caption = 'Home(7)\GoFishBackups\ = ' + Proper(Addbs(Home(7)) + 'GoFishBackups\' ) - ENDPROC - - PROCEDURE pfSettings.pageColumns.cmdClearAll.Click - For each loControl in this.Parent.containerColumnCheckBoxes.Controls - loControl.value = 0 - EndFor - - ENDPROC - - PROCEDURE pfSettings.pageColumns.cmdSelectAll.Click - For each loControl in this.Parent.containerColumnCheckBoxes.Controls - loControl.value = 1 - EndFor - - ENDPROC - - PROCEDURE pfSettings.pagePreferences.Activate - This.Refresh() - ENDPROC - - PROCEDURE pfSettings.pagePreferences.cboDockable.InteractiveChange - lnCurrentDockable = Thisform.oForm.Dockable - lnNewValue = this.Value - - If lnNewValue = 0 and lnCurrentDockable # 0 - MessageBox('You will have to restart GoFish for this change to take effect.', 0, 'Notice:') - Endif - - Thisform.nDockable = This.Value - ENDPROC - - PROCEDURE pfSettings.pagePreferences.cboDockable.Refresh - - - ENDPROC - - PROCEDURE pfSettings.pagePreferences.cmdZoomDefault.Click - Thisform.nBrowserZoom = 1.0 - This.Parent.Refresh() - ENDPROC - - PROCEDURE pfSettings.pagePreferences.Command1.Click - Local lcFolder, lcPath - - lcFolder = "GF_Saved_Search_Results" - - lcPath = '"' + Addbs(Home(7)) + lcFolder + '"' - OpenExplorerWindow(lcPath) - ENDPROC - - PROCEDURE pfSettings.pagePreferences.Spinner4.Click - Nodefault - ENDPROC - - PROCEDURE pfSettings.pagePreferences.Spinner4.DownClick - This.Value = This.Value - 0.00 - - Nodefault - ENDPROC - - PROCEDURE pfSettings.pagePreferences.Spinner4.UpClick - This.Value = This.Value + 0.00 - - nodefault - ENDPROC - - PROCEDURE pfSettings.pagePreferences.Spinner4.Valid - If This.Value < This.SpinnerLowValue - This.Value = This.SpinnerLowValue - EndIf - - If This.Value > This.SpinnerHighValue - This.Value = This.SpinnerHighValue - Endif - ENDPROC - - PROCEDURE pfSettings.pagePreferences.Text1.Click - This.SelStart = 0 - This.SelLength = 100 - ENDPROC - - PROCEDURE pfSettings.pagePreferences.Text1.Valid - If this.Value <= 0 - MessageBox('Please enter a value greater than zero.', 64, 'GoFish') - Return .f. - Endif - - - ENDPROC - - PROCEDURE pfSettings.pageReplace.Activate - This.Refresh() - ENDPROC - - PROCEDURE pfSettings.pageReplace.Check1.Click - DoDefault() - - Thisform.oSearchOptions.lBackup = .t. - - This.Parent.Refresh() - ENDPROC - - PROCEDURE pfSettings.pageReplace.Check2.Click - DoDefault() - - This.Parent.Refresh() - ENDPROC - - PROCEDURE pfSettings.pageReplace.cmdOpenFolder.Click - Local lcPath - - lcPath = JustPath(Thisform.oSearchEngine.cReplaceDetailTable) - - OpenExplorerWindow(lcPath) - ENDPROC - - PROCEDURE pfSettings.pageReplace.Label2.Click - Shell('http://vfpx.codeplex.com/wikipage?title=GoFish%20Replace%20Help') - - ENDPROC - - PROCEDURE pfSettings.pageReplace.optiongroupReplaceSafetyLevel.Option2.Click - DoDefault() - - This.Parent.Refresh() - - - ENDPROC - - PROCEDURE pfSettings.pageReplace.optiongroupReplaceSafetyLevel.Option3.Click - DoDefault() - - This.Parent.Refresh() - - - ENDPROC - - PROCEDURE pfSettings.pageReplace.optiongroupReplaceSafetyLevel.Option4.Click - DoDefault() - - This.Parent.Refresh() - - ENDPROC - - PROCEDURE pfSettings.pageReplace.optiongroupReplaceSafetyLevel.Refresh - lnColor = Rgb(240, 240, 240) - - lnRiskLevel = This.Value - - Do Case - Case lnRiskLevel = 1 - lnColor = Rgb(0, 176, 80)&& Green - - Case lnRiskLevel = 2 - lnColor = Rgb(255, 255, 128) && Yellow - - Case lnRiskLevel = 3 - lnColor = Rgb(255, 192, 0)&& Orange - Endcase - - If Thisform.oSearchOptions.lEnableReplaceMode = .t. - This.BackColor = lnColor - This.SetAll('Enabled', .t., 'OptionButton') - This.SetAll('Forecolor', Rgb(0,0,0), 'OptionButton') - Else - This.BackColor = Rgb(255,255,255) - This.SetAll('Enabled', .f., 'OptionButton') - This.SetAll('DisabledForecolor', Rgb(210,210,210), 'OptionButton') - Endif - - - DoDefault() - - ENDPROC - - PROCEDURE pfSettings.pageReplace.Refresh - this.Parent.pageBackups.Enabled = Thisform.oSearchOptions.lEnableReplaceMode - - DoDefault() - ENDPROC - - PROCEDURE pfSettings.pageReplace.Text1.Valid - If this.Value <= 0 - MessageBox('Please enter a value greater than zero.', 64, 'GoFish') - Return .f. - Endif - - - ENDPROC - - PROCEDURE pfSettings.pageReplace.Text2.Valid - If this.Value <= 0 - MessageBox('Please enter a value greater than zero.', 64, 'GoFish') - Return .f. - Endif - - - ENDPROC - - PROCEDURE pfSettings.pageThor.Activate - Local llThorRunning - - Try - ExecScript(_Screen.cThorDispatcher, '?') - llThorRunning = .T. - Catch - llThorRunning = .F. - EndTry - - This.lblNoThor.Visible = !llThorRunning - - ENDPROC - - PROCEDURE pfSettings.pageThor.Label2.Click - Shell('http://vfpx.codeplex.com/wikipage?title=Thor') - - ENDPROC - -ENDDEFINE +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_options.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="gf_options" Baseclass="form" /> + +* \ No newline at end of file diff --git a/Source/Forms/gofish_options.scx b/Source/Forms/gofish_options.scx index e64d992..525a371 100644 Binary files a/Source/Forms/gofish_options.scx and b/Source/Forms/gofish_options.scx differ diff --git a/Source/Forms/gofish_results.SCT b/Source/Forms/gofish_results.SCT index 1f5601b..bbb173d 100644 Binary files a/Source/Forms/gofish_results.SCT and b/Source/Forms/gofish_results.SCT differ diff --git a/Source/Forms/gofish_results.dataenvironment.sc2 b/Source/Forms/gofish_results.dataenvironment.sc2 new file mode 100644 index 0000000..a7dc302 --- /dev/null +++ b/Source/Forms/gofish_results.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_results.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="2" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gofish_results.gf_resultsform1.sc2 b/Source/Forms/gofish_results.gf_resultsform1.sc2 new file mode 100644 index 0000000..4e19efc --- /dev/null +++ b/Source/Forms/gofish_results.gf_resultsform1.sc2 @@ -0,0 +1,281 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_results.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS gf_resultsform1 AS gf_resultsform OF "..\lib\gofishui.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + * + DoCreate = .T. + Name = "Gf_resultsform1" + lblSearch.Name = "lblSearch" + comboSearchExpressionHistory.Name = "comboSearchExpressionHistory" + editSearch.Name = "editSearch" + comboSearchScopeHistory.Name = "comboSearchScopeHistory" + lblScope.Name = "lblScope" + containerLeft.cntVersion.cmdVFPX.Name = "cmdVFPX" + containerLeft.cntVersion.Gf_versionlabel1.Name = "Gf_versionlabel1" + containerLeft.cntVersion.Name = "cntVersion" + containerLeft.Name = "containerLeft" + containerLeft.oTreeView.Height = 513 + containerLeft.oTreeView.Left = 0 + containerLeft.oTreeView.Name = "oTreeView" + containerLeft.oTreeView.Top = 0 + containerLeft.oTreeView.Width = 186 + containerRight.CONTAINER1.chkReplaceMode.Alignment = 0 + containerRight.CONTAINER1.chkReplaceMode.Name = "chkReplaceMode" + containerRight.CONTAINER1.cmdClassBrowser.Name = "cmdClassBrowser" + containerRight.CONTAINER1.cmdEdit.Name = "cmdEdit" + containerRight.CONTAINER1.cmdGoToObject.Name = "cmdGoToObject" + containerRight.CONTAINER1.cmdMenu.Name = "cmdMenu" + containerRight.CONTAINER1.cmdOpenExplorer.Name = "cmdOpenExplorer" + containerRight.CONTAINER1.cmdReport.Name = "cmdReport" + containerRight.CONTAINER1.cmdSearchErrors.Name = "cmdSearchErrors" + containerRight.CONTAINER1.COMMAND1.Name = "COMMAND1" + containerRight.CONTAINER1.CONTAINER1.CHKAPPLYFILTER.Alignment = 0 + containerRight.CONTAINER1.CONTAINER1.CHKAPPLYFILTER.Name = "CHKAPPLYFILTER" + containerRight.CONTAINER1.CONTAINER1.cmdFilter.Name = "cmdFilter" + containerRight.CONTAINER1.CONTAINER1.Name = "CONTAINER1" + containerRight.CONTAINER1.Container2.chkCodeOnly.Alignment = 0 + containerRight.CONTAINER1.Container2.chkCodeOnly.Name = "chkCodeOnly" + containerRight.CONTAINER1.Container2.Name = "Container2" + containerRight.CONTAINER1.containerReplaceText.cmdReplaceErrors.Name = "cmdReplaceErrors" + containerRight.CONTAINER1.containerReplaceText.cmdReplaceHistory.Name = "cmdReplaceHistory" + containerRight.CONTAINER1.containerReplaceText.Name = "containerReplaceText" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.Name = "optiongroupReplaceMode" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionAdvancedReplace.Left = 158 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionAdvancedReplace.Name = "optionAdvancedReplace" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionAdvancedReplace.Top = 5 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceLine.Left = 92 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceLine.Name = "optionReplaceLine" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceLine.Top = 5 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceText.Left = 5 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceText.Name = "optionReplaceText" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceText.Top = 5 + containerRight.CONTAINER1.containerReplaceText.PageFrame.ErasePage = .T. + containerRight.CONTAINER1.containerReplaceText.PageFrame.Height = 55 + containerRight.CONTAINER1.containerReplaceText.PageFrame.Name = "PageFrame" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.cmdCheckAll.Name = "cmdCheckAll" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.cmdClearAll.Name = "cmdClearAll" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.cmdReplace.Name = "cmdReplace" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.editReplaceExpression.Name = "editReplaceExpression" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.LABEL1.Name = "LABEL1" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.Name = "PAGE1" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE2.cmdSaveLine.Name = "cmdSaveLine" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE2.editReplaceLine.Name = "editReplaceLine" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE2.lblReplaceLine.Name = "lblReplaceLine" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE2.Name = "PAGE2" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdBrowse.Name = "cmdBrowse" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdCheckAll.Name = "cmdCheckAll" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdClearAll.Name = "cmdClearAll" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdEdit.Name = "cmdEdit" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdReplace.Name = "cmdReplace" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.Name = "PAGE3" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.Text1.Name = "Text1" + containerRight.CONTAINER1.containerReplaceText.PageFrame.Top = 25 + containerRight.CONTAINER1.GridFiles.colProcess.CHECK1.Alignment = 2 + containerRight.CONTAINER1.GridFiles.colProcess.CHECK1.Name = "CHECK1" + containerRight.CONTAINER1.GridFiles.colProcess.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.colProcess.imageCheck.Height = 16 + containerRight.CONTAINER1.GridFiles.colProcess.imageCheck.Name = "imageCheck" + containerRight.CONTAINER1.GridFiles.colProcess.imageCheck.Width = 50 + containerRight.CONTAINER1.GridFiles.colProcess.LABEL1.Name = "LABEL1" + containerRight.CONTAINER1.GridFiles.colProcess.Name = "colProcess" + containerRight.CONTAINER1.GridFiles.colProcess.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN1.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN1.Name = "COLUMN1" + containerRight.CONTAINER1.GridFiles.COLUMN1.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN10.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN10.Name = "COLUMN10" + containerRight.CONTAINER1.GridFiles.COLUMN10.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN11.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN11.Name = "COLUMN11" + containerRight.CONTAINER1.GridFiles.COLUMN11.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN12.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN12.Name = "COLUMN12" + containerRight.CONTAINER1.GridFiles.COLUMN12.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN13.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN13.Name = "COLUMN13" + containerRight.CONTAINER1.GridFiles.COLUMN13.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN14.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN14.Name = "COLUMN14" + containerRight.CONTAINER1.GridFiles.COLUMN14.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN15.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN15.Name = "COLUMN15" + containerRight.CONTAINER1.GridFiles.COLUMN15.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN16.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN16.Name = "COLUMN16" + containerRight.CONTAINER1.GridFiles.COLUMN16.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN17.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN17.Name = "COLUMN17" + containerRight.CONTAINER1.GridFiles.COLUMN17.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN18.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN18.Name = "COLUMN18" + containerRight.CONTAINER1.GridFiles.COLUMN18.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN19.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN19.Name = "COLUMN19" + containerRight.CONTAINER1.GridFiles.COLUMN19.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN2.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN2.Name = "COLUMN2" + containerRight.CONTAINER1.GridFiles.COLUMN2.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN20.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN20.Name = "COLUMN20" + containerRight.CONTAINER1.GridFiles.COLUMN20.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN21.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN21.Name = "COLUMN21" + containerRight.CONTAINER1.GridFiles.COLUMN21.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN22.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN22.Name = "COLUMN22" + containerRight.CONTAINER1.GridFiles.COLUMN22.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN23.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN23.Name = "COLUMN23" + containerRight.CONTAINER1.GridFiles.COLUMN23.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN25.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN25.Name = "COLUMN25" + containerRight.CONTAINER1.GridFiles.COLUMN25.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN3.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN3.Name = "COLUMN3" + containerRight.CONTAINER1.GridFiles.COLUMN3.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN4.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN4.Name = "COLUMN4" + containerRight.CONTAINER1.GridFiles.COLUMN4.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN5.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN5.Name = "COLUMN5" + containerRight.CONTAINER1.GridFiles.COLUMN5.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN6.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN6.Name = "COLUMN6" + containerRight.CONTAINER1.GridFiles.COLUMN6.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN7.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN7.Name = "COLUMN7" + containerRight.CONTAINER1.GridFiles.COLUMN7.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN8.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN8.Name = "COLUMN8" + containerRight.CONTAINER1.GridFiles.COLUMN8.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN9.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN9.Name = "COLUMN9" + containerRight.CONTAINER1.GridFiles.COLUMN9.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.Name = "GridFiles" + containerRight.CONTAINER1.lblResults.Name = "lblResults" + containerRight.CONTAINER1.Name = "CONTAINER1" + containerRight.Container2.containerWebControl.ButtonContainer.lblFilePath.Name = "lblFilePath" + containerRight.Container2.containerWebControl.ButtonContainer.Name = "ButtonContainer" + containerRight.Container2.containerWebControl.cmdCompressCodeview.Name = "cmdCompressCodeview" + containerRight.Container2.containerWebControl.cmdMaximizeCodeView.Name = "cmdMaximizeCodeView" + containerRight.Container2.containerWebControl.CMDZOOMIN.Name = "CMDZOOMIN" + containerRight.Container2.containerWebControl.CMDZOOMOUT.Name = "CMDZOOMOUT" + containerRight.Container2.containerWebControl.comboViewPosition.Name = "comboViewPosition" + containerRight.Container2.containerWebControl.lblCodeView.Name = "lblCodeView" + containerRight.Container2.containerWebControl.Name = "containerWebControl" + containerRight.Container2.containerWebControl.OBROWSER.Height = 144 + containerRight.Container2.containerWebControl.OBROWSER.Left = 1 + containerRight.Container2.containerWebControl.OBROWSER.Name = "OBROWSER" + containerRight.Container2.containerWebControl.OBROWSER.Top = 23 + containerRight.Container2.containerWebControl.OBROWSER.Width = 794 + containerRight.Container2.Name = "Container2" + containerRight.Name = "containerRight" + containerRight.Splitter1.GRIPPER.GRIPPERDOT1.Name = "GRIPPERDOT1" + containerRight.Splitter1.GRIPPER.GRIPPERDOT1.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT1.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT1.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.GRIPPERDOT2.Name = "GRIPPERDOT2" + containerRight.Splitter1.GRIPPER.GRIPPERDOT2.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT2.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT2.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.GRIPPERDOT3.Name = "GRIPPERDOT3" + containerRight.Splitter1.GRIPPER.GRIPPERDOT3.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT3.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT3.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.GRIPPERDOT4.Name = "GRIPPERDOT4" + containerRight.Splitter1.GRIPPER.GRIPPERDOT4.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT4.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT4.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.GRIPPERDOT5.Name = "GRIPPERDOT5" + containerRight.Splitter1.GRIPPER.GRIPPERDOT5.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT5.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT5.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.Name = "GRIPPER" + containerRight.Splitter1.Name = "Splitter1" + containerRight.splitter3.GRIPPER.GRIPPERDOT1.Name = "GRIPPERDOT1" + containerRight.splitter3.GRIPPER.GRIPPERDOT1.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT1.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT1.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.GRIPPERDOT2.Name = "GRIPPERDOT2" + containerRight.splitter3.GRIPPER.GRIPPERDOT2.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT2.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT2.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.GRIPPERDOT3.Name = "GRIPPERDOT3" + containerRight.splitter3.GRIPPER.GRIPPERDOT3.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT3.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT3.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.GRIPPERDOT4.Name = "GRIPPERDOT4" + containerRight.splitter3.GRIPPER.GRIPPERDOT4.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT4.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT4.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.GRIPPERDOT5.Name = "GRIPPERDOT5" + containerRight.splitter3.GRIPPER.GRIPPERDOT5.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT5.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT5.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.Name = "GRIPPER" + containerRight.splitter3.Name = "splitter3" + splitter2.GRIPPER.GRIPPERDOT1.Name = "GRIPPERDOT1" + splitter2.GRIPPER.GRIPPERDOT1.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT1.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT1.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.GRIPPERDOT2.Name = "GRIPPERDOT2" + splitter2.GRIPPER.GRIPPERDOT2.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT2.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT2.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.GRIPPERDOT3.Name = "GRIPPERDOT3" + splitter2.GRIPPER.GRIPPERDOT3.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT3.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT3.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.GRIPPERDOT4.Name = "GRIPPERDOT4" + splitter2.GRIPPER.GRIPPERDOT4.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT4.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT4.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.GRIPPERDOT5.Name = "GRIPPERDOT5" + splitter2.GRIPPER.GRIPPERDOT5.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT5.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT5.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.Name = "GRIPPER" + splitter2.Name = "splitter2" + ProgressBar.BAR.IMAGE1.Name = "IMAGE1" + ProgressBar.BAR.Name = "BAR" + ProgressBar.Box.Name = "Box" + ProgressBar.IMAGE1.Name = "IMAGE1" + ProgressBar.LABEL1.Name = "LABEL1" + ProgressBar.LABEL2.Name = "LABEL2" + ProgressBar.Name = "ProgressBar" + comboSearchExpressionHistoryDropDownArrow.Name = "comboSearchExpressionHistoryDropDownArrow" + timerShowAdvancedForm.Name = "timerShowAdvancedForm" + imgScopeIcon.Name = "imgScopeIcon" + ButtonContainer.chkLimitToProjectFolder.Alignment = 0 + ButtonContainer.chkLimitToProjectFolder.Name = "chkLimitToProjectFolder" + ButtonContainer.chkMatchWholeWord.Alignment = 0 + ButtonContainer.chkMatchWholeWord.Name = "chkMatchWholeWord" + ButtonContainer.chkSubdirectories.Alignment = 0 + ButtonContainer.chkSubdirectories.Name = "chkSubdirectories" + ButtonContainer.cmdAdvanced.Name = "cmdAdvanced" + ButtonContainer.cmdHelp.Name = "cmdHelp" + ButtonContainer.cmdOptions.Name = "cmdOptions" + ButtonContainer.cmdRegexpHelp.Name = "cmdRegexpHelp" + ButtonContainer.cmdSearch.Name = "cmdSearch" + ButtonContainer.comboViewPosition.Name = "comboViewPosition" + ButtonContainer.COMMAND1.Name = "COMMAND1" + ButtonContainer.CONTAINER1.CHKAPPLYFILTER.Alignment = 0 + ButtonContainer.CONTAINER1.CHKAPPLYFILTER.Name = "CHKAPPLYFILTER" + ButtonContainer.CONTAINER1.Name = "CONTAINER1" + ButtonContainer.Container2.CHKAPPLYFILTER.Alignment = 0 + ButtonContainer.Container2.CHKAPPLYFILTER.Name = "CHKAPPLYFILTER" + ButtonContainer.Container2.Name = "Container2" + ButtonContainer.Container3.CHKAPPLYFILTER.Alignment = 0 + ButtonContainer.Container3.CHKAPPLYFILTER.Name = "CHKAPPLYFILTER" + ButtonContainer.Container3.Name = "Container3" + ButtonContainer.lblCodeView.Name = "lblCodeView" + ButtonContainer.lblSearchTime.Name = "lblSearchTime" + ButtonContainer.Name = "ButtonContainer" + * + +ENDDEFINE diff --git a/Source/Forms/gofish_results.sc2 b/Source/Forms/gofish_results.sc2 index f15b2ab..d961f35 100644 --- a/Source/Forms/gofish_results.sc2 +++ b/Source/Forms/gofish_results.sc2 @@ -1,7586 +1,11 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_results.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -#INCLUDE "..\lib\gofish.h" - -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="2" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS gofish AS form - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="lblSearch" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="comboSearchExpressionHistory" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="editSearch" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="comboSearchScopeHistory" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="lblScope" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerLeft" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerLeft.oTreeView" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerLeft.cntVersion" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerLeft.cntVersion.Gf_versionlabel1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerLeft.cntVersion.cmdVFPX" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container2.containerWebControl" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container2.containerWebControl.comboViewPosition" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container2.containerWebControl.lblCodeView" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container2.containerWebControl.ButtonContainer" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container2.containerWebControl.ButtonContainer.lblFilePath" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container2.containerWebControl.cmdCompressCodeview" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container2.containerWebControl.cmdMaximizeCodeView" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.cmdGoToObject" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.cmdMenu" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.lblResults" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column17.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column17.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column3.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column3.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column4.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column4.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column18.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column18.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.colProcess.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.colProcess.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.colProcess.Check1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.colProcess.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.colProcess.imageCheck" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column7.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column7.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column8.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column8.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column6.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column6.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column9.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column9.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column10.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column10.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column11.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column11.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column12.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column12.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column16.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column16.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column2.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column2.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column13.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column13.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column14.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column14.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column15.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column15.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column1.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column1.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column5.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column5.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column19.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column19.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column20.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column20.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column21.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column21.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column22.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column22.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column23.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column23.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column25.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.GridFiles.Column25.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page1.editReplaceExpression" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdReplace" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page1.Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdCheckAll" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdClearAll" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page2.editReplaceLine" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page2.lblReplaceLine" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page2.cmdSaveLine" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdBrowse" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdReplace" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdEdit" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdCheckAll" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdClearAll" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.Pageframe.Page3.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.cmdReplaceErrors" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.optiongroupReplaceMode" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.containerReplaceText.cmdReplaceHistory" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.cmdOpenExplorer" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.cmdReport" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.cmdSearchErrors" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.chkReplaceMode" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.cmdClassBrowser" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.Container1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.Container1.chkApplyFilter" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.Container1.cmdFilter" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.cmdEdit" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.Command1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.Container2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Container1.Container2.chkCodeOnly" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.Splitter1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="containerRight.splitter3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="splitter2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ProgressBar" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="comboSearchExpressionHistoryDropDownArrow" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="timerShowAdvancedForm" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="imgScopeIcon" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.chkSubdirectories" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.chkLimitToProjectFolder" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.cmdSearch" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.cmdAdvanced" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.cmdOptions" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.Command1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.chkMatchWholeWord" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.Container1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.Container1.chkApplyFilter" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.comboViewPosition" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.lblCodeView" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.Container2" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.Container2.chkApplyFilter" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.Container3" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.Container3.chkApplyFilter" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.lblSearchTime" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.cmdHelp" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="ButtonContainer.cmdRegexpHelp" UniqueID="" Timestamp="" /> - - * - *m: addclassestotreeview - *m: adjustformforreplacepanel - *m: applyfilter - *m: buildsearchhistorycursor - *m: checkall - *m: clearall - *m: cleargfsefilter - *m: clearsearchresultscursor - *m: cleartreeview - *m: clicktreeviewnode - *m: combinefilters - *m: confirmreplace - *m: doreplace - *m: dosearch - *m: editfile - *m: editmenufromcurrentrow - *m: editobjectfromcurrentrow - *m: expandallnodes - *m: exporttoexcel - *m: fillsearchresultscursor - *m: filtergfse - *m: focusonreplacepageframe - *m: formatgrid - *m: formatgridforreplacemode - *m: formatprocesscolumn - *m: getcurrentscope && Will return the Active Project, Browsed Project, Current Dir, or Browsed Dir depending on current setting of nSearchScope (Values: 1 through 4) - *m: getlastsavedresultsfolder - *m: gridcolumnrightclick - *m: gridheaderrightclick - *m: lmaximizecodeview_assign - *m: loadfiltersettings - *m: loadformsettings - *m: loadreplaceline - *m: loadsavedresults - *m: lockwindow - *m: lreplacemode_assign - *m: mhelpnotes - *m: navigatetomasterrecord - *m: ncodewindowposition_assign - *m: nreplacemode_assign - *m: populatetreeview - *m: replace - *m: replaceline - *m: resizecodepage - *m: restoredefaultdir - *m: restorelastsearch - *m: restoreprevioussearch - *m: restoresavedsearch - *m: restoresearchengineoptions - *m: restoresearchfromhistory - *m: restoretreeviewonstartup - *m: runjanitor - *m: runjanitorforreplacehistory - *m: runjanitorforsearchhistory - *m: saveformsettings - *m: savesearchinfo - *m: savesearchresults - *m: search - *m: setcaption - *m: seterror - *m: setpath - *m: setproject - *m: setscope - *m: setsearchexpression - *m: showadvancedform - *m: showcodeforcurrentrow - *m: showerrors - *m: showfilterform - *m: showform - *m: showgofishhelppage - *m: showgridcolumn - *m: showhelpform - *m: showhtml - *m: showhtmlcodeview - *m: showoptionsform - *m: showreplaceerrors - *m: showreplacehistory - *m: showreplacepanel - *m: showsearcherrors - *m: sortcolumn - *m: sortcolumnsecondary - *m: updateformaftereplace - *m: updateformaftersearch - *m: updatesearchenginecursor - *m: updatesearchscopevariables - *m: updatetreeview - *m: validateinputs - *m: validatereplaceexpression - *m: viewreport - *p: cactiveproject - *p: cbrowseproject - *p: ccurrentdir - *p: cdonotrenderextensions && A list of common file types that cannot be rendered in the code viewer on the GoFish form. - *p: cfilter - *p: cfilteroptionsclass - *p: cfilteroptionsxmlfile - *p: chtmlcodeviewfilename - *p: cinitialdefaultdir - *p: conkeylabeldot - *p: corderby - *p: creplaceline - *p: creplaceudffilename - *p: cresultsmessage - *p: csavedsearchresultsfolder && This property value is used by the RemoveFolder() function in the GoFishProc.prg file. If changed here, you'll need to update code in that fucntion also. - *p: csearchoptionsxmlfile - *p: csearchresultsalias - *p: csearchresultsmessage - *p: csortfield - *p: csortfields - *p: csortfieldsecondary - *p: csortfieldtertiary - *p: csortorder - *p: csortordersecondary - *p: csortordertertiary - *p: ctreeviewfilter - *p: cuisettingsfile - *p: dlastjanitorrundate - *p: lapplyfilter - *p: lautoyield - *p: lclearapplyfilter - *p: lcodeonly - *p: lgooglechromeframe && Indicates if the HTML view should be generated using the Google Chrome frame plug-ing for Internet Explorer. Slower due to file activity, but allows selecting of text from matched row in html view. - *p: linit - *p: lmaximizecodeview - *p: lonlyfirstmatchinstatement - *p: lreplaceformvisible - *p: lreplacemode - *p: lrestoreprevioussearchresultsonstartup - *p: lrunjanitordaily - *p: lsavesearchresults - *p: lsavesettings && This property can be used to prevent the form from saving its settings when closed. It will start out .T. each time GoFish is launched. - *p: lsearchformvisible - *p: lsearching - *p: lwarnwholeword - *p: nbrowserzoom - *p: ncodewindowposition && *** nEnum 1=Below; 2= on Right; 3 = on Left - *p: ncurrentid - *p: ndropdowndisplaycount && Controls the numbner of history items shown in the Search Expression and Scope history dropdown boxes. - *p: ndropdownmaxmru - *p: ngridfontsize - *p: njanitorreplacehistorydays - *p: njanitorsearchhistorydays - *p: nmaxsizetorenderhtml && If the code from the match is too large, the HTML rendering can be slow. This will skip the html rendering for code blocks larger than this size and just display it as plaint text. - *p: noriginalsearchscope && The original value of nSearchScope on the SearchOptions after reading the xml files. Used to restore value right before saving the settings upon exit (if SearchScope combo is used). - *p: nprevioussessiontreeviewindex - *p: nreplacemode - *p: nreplacerisk - *p: nsearchboxfontsize - *p: nsplitterposratio - *p: ntabstospaces - *p: ntreeviewfontsize - *p: obrowser - *p: ofilter - *p: ogrid - *p: osearchengine - *p: osearchoptions - *p: otree - *p: owebcontrol - *p: _memberdata && XML Metadata for customizable properties - * - - AllowOutput = .F. - BorderStyle = 3 - cactiveproject = - Caption = "GoFish 4.4" - cbrowseproject = - ccurrentdir = - cdonotrenderextensions = (' DOC DOCX XLS XLXS PDF CHM ') && A list of common file types that cannot be rendered in the code viewer on the GoFish form. - cfilter = - cfilteroptionsclass = GF_SearchResultsFilter - cfilteroptionsxmlfile = (Home(7) + 'GF_Filter_Settings.xml') - chtmlcodeviewfilename = - cinitialdefaultdir = - conkeylabeldot = - corderby = - creplaceline = - creplaceudffilename = - cresultsmessage = - csavedsearchresultsfolder = GF_Saved_Search_Results && This property value is used by the RemoveFolder() function in the GoFishProc.prg file. If changed here, you'll need to update code in that fucntion also. - csearchoptionsxmlfile = GF_Search_Settings.xml - csearchresultsalias = csrSummarySearchResults - csearchresultsmessage = - csortfield = - csortfields = - csortfieldsecondary = - csortfieldtertiary = - csortorder = - csortordersecondary = - csortordertertiary = - ctreeviewfilter = - cuisettingsfile = GF_Results_Form_Settings.xml - DataSession = 2 - dlastjanitorrundate = ({//}) - Dockable = 0 - DoCreate = .T. - FontName = "Tahoma" - Height = 595 - KeyPreview = .T. - lapplyfilter = .F. - lautoyield = .F. - lclearapplyfilter = .F. - lcodeonly = .F. - Left = 0 - lgooglechromeframe = .F. && Indicates if the HTML view should be generated using the Google Chrome frame plug-ing for Internet Explorer. Slower due to file activity, but allows selecting of text from matched row in html view. - linit = .F. - lmaximizecodeview = .F. - lonlyfirstmatchinstatement = .F. - lreplaceformvisible = .F. - lreplacemode = .F. - lrestoreprevioussearchresultsonstartup = .F. - lrunjanitordaily = .F. - lsavesearchresults = .T. - lsavesettings = .T. && This property can be used to prevent the form from saving its settings when closed. It will start out .T. each time GoFish is launched. - lsearchformvisible = .F. - lsearching = .F. - lwarnwholeword = .F. - MaxWidth = -1 - MinHeight = 425 - MinWidth = 800 - Name = "gofish" - nbrowserzoom = 0.9 - ncodewindowposition = 1 && *** nEnum 1=Below; 2= on Right; 3 = on Left - ncurrentid = 0 - ndropdowndisplaycount = 30 && Controls the numbner of history items shown in the Search Expression and Scope history dropdown boxes. - ndropdownmaxmru = 7 - ngridfontsize = 8 - njanitorreplacehistorydays = 10000 - njanitorsearchhistorydays = 10000 - nmaxsizetorenderhtml = 5000000 && If the code from the match is too large, the HTML rendering can be slow. This will skip the html rendering for code blocks larger than this size and just display it as plaint text. - noriginalsearchscope = 0 && The original value of nSearchScope on the SearchOptions after reading the xml files. Used to restore value right before saving the settings upon exit (if SearchScope combo is used). - nprevioussessiontreeviewindex = 0 - nreplacemode = 0 - nreplacerisk = 1 - nsearchboxfontsize = 9 - nsplitterposratio = 0 - ntabstospaces = 0 - ntreeviewfontsize = 8 - obrowser = .NULL. - ofilter = - ogrid = .NULL. - osearchengine = .NULL. - osearchoptions = .NULL. - otree = .NULL. - owebcontrol = .NULL. - Picture = - ShowTips = .T. - TabStop = .T. - Top = 0 - Visible = .T. - Width = 1000 - WindowState = 2 - WindowType = 0 - _memberdata = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - && XML Metadata for customizable properties - - ADD OBJECT 'ButtonContainer' AS container WITH ; - BackStyle = 0, ; - BorderWidth = 0, ; - Height = 58, ; - Left = 470, ; - Name = "ButtonContainer", ; - Picture = ..\images\, ; - Top = -2, ; - Width = 528 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'ButtonContainer.chkLimitToProjectFolder' AS checkbox WITH ; - Alignment = 0, ; - Anchor = 8, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Limit to home...", ; - ControlSource = "thisform.oSearchOptions.lLimitToProjectFolder", ; - FontSize = 8, ; - Height = 16, ; - Left = 8, ; - Name = "chkLimitToProjectFolder", ; - Picture = ..\images\, ; - TabIndex = 12, ; - ToolTipText = "Limit search to project home directory and sub-folders", ; - Top = 37, ; - Width = 89 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'ButtonContainer.chkMatchWholeWord' AS checkbox WITH ; - Alignment = 0, ; - Anchor = 8, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "\ - - ADD OBJECT 'ButtonContainer.chkSubdirectories' AS checkbox WITH ; - Alignment = 0, ; - Anchor = 8, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Subdirectories", ; - ControlSource = "Thisform.oSearchOptions.lIncludeSubDirectories", ; - FontSize = 8, ; - Height = 16, ; - Left = 8, ; - Name = "chkSubdirectories", ; - Picture = ..\images\, ; - TabIndex = 11, ; - ToolTipText = "Include subdirectories in search", ; - Top = 37, ; - Width = 88 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'ButtonContainer.cmdAdvanced' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "\ - - ADD OBJECT 'ButtonContainer.cmdHelp' AS commandbutton WITH ; - Anchor = 9, ; - Caption = "", ; - Height = 22, ; - Left = 439, ; - Name = "cmdHelp", ; - Picture = ('images\refhelp.bmp'), ; - PicturePosition = 1, ; - SpecialEffect = 2, ; - TabIndex = 16, ; - Top = 7, ; - Width = 24 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'ButtonContainer.cmdOptions' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "\ - - ADD OBJECT 'ButtonContainer.cmdRegexpHelp' AS commandbutton WITH ; - Caption = "", ; - FontSize = 8, ; - Height = 22, ; - Left = 250, ; - Name = "cmdRegexpHelp", ; - Picture = ('images\GrammarIconRegex.gif'), ; - PicturePosition = 1, ; - SpecialEffect = 2, ; - TabIndex = 5, ; - ToolTipText = "Help for forming regular expressions", ; - Top = 7, ; - Width = 22 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'ButtonContainer.cmdSearch' AS commandbutton WITH ; - Anchor = 8, ; - Caption = " \ - - ADD OBJECT 'ButtonContainer.comboViewPosition' AS combobox WITH ; - ControlSource = "Thisform.oSearchOptions.nSearchMode", ; - FontSize = 8, ; - Height = 24, ; - Left = 118, ; - Name = "comboViewPosition", ; - Picture = , ; - Style = 2, ; - TabIndex = 24, ; - TabStop = .F., ; - ToolTipText = "", ; - Top = 6, ; - Width = 128, ; - ZOrderSet = 8 - *< END OBJECT: BaseClass="combobox" /> - - ADD OBJECT 'ButtonContainer.Command1' AS commandbutton WITH ; - Anchor = 8, ; - Caption = "\ - - ADD OBJECT 'ButtonContainer.Container1' AS container WITH ; - BackStyle = 0, ; - BorderColor = 255,0,0, ; - BorderWidth = 2, ; - Height = 25, ; - Left = 99, ; - Name = "Container1", ; - Picture = ..\images\, ; - Top = 33, ; - Width = 83 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'ButtonContainer.Container1.chkApplyFilter' AS checkbox WITH ; - Alignment = 0, ; - Anchor = 8, ; - AutoSize = .T., ; - Caption = "\ - - ADD OBJECT 'ButtonContainer.Container2' AS container WITH ; - BackStyle = 0, ; - BorderColor = 255,0,0, ; - BorderWidth = 2, ; - Height = 25, ; - Left = 190, ; - Name = "Container2", ; - Picture = ..\images\, ; - Top = 33, ; - Width = 81 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'ButtonContainer.Container2.chkApplyFilter' AS checkbox WITH ; - Alignment = 0, ; - Anchor = 8, ; - AutoSize = .T., ; - Caption = "Match \ - - ADD OBJECT 'ButtonContainer.Container3' AS container WITH ; - BackStyle = 0, ; - BorderColor = 255,0,0, ; - BorderWidth = 2, ; - Height = 25, ; - Left = 279, ; - Name = "Container3", ; - Picture = ..\images\, ; - Top = 33, ; - Width = 75 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'ButtonContainer.Container3.chkApplyFilter' AS checkbox WITH ; - Alignment = 0, ; - Anchor = 8, ; - AutoSize = .T., ; - Caption = "Co\ - - ADD OBJECT 'ButtonContainer.lblCodeView' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Mode:", ; - FontBold = .F., ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 84, ; - Name = "lblCodeView", ; - TabIndex = 7, ; - Top = 11, ; - Width = 31, ; - ZOrderSet = 9 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'ButtonContainer.lblSearchTime' AS label WITH ; - Alignment = 1, ; - Anchor = 8, ; - BackStyle = 0, ; - Caption = "9999 lines in 9999 files in 999.9 seconds", ; - FontSize = 8, ; - ForeColor = 128,128,128, ; - Height = 46, ; - Left = 436, ; - Name = "lblSearchTime", ; - TabIndex = 21, ; - Top = 12, ; - Width = 83, ; - WordWrap = .T. - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'comboSearchExpressionHistory' AS gf_combosearchexpressionhistory WITH ; - Anchor = 0, ; - Height = 26, ; - Left = 47, ; - Name = "comboSearchExpressionHistory", ; - nexpressionstostore = 50, ; - Picture = , ; - TabIndex = 19, ; - TabStop = .F., ; - Top = 3, ; - Width = 420 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="combobox" /> - - ADD OBJECT 'comboSearchExpressionHistoryDropDownArrow' AS combobox WITH ; - Anchor = 0, ; - BorderColor = 255,255,255, ; - BorderStyle = 0, ; - Height = 26, ; - Left = 446, ; - Name = "comboSearchExpressionHistoryDropDownArrow", ; - Picture = , ; - TabIndex = 24, ; - TabStop = .F., ; - Top = 14, ; - Width = 17 - *< END OBJECT: BaseClass="combobox" /> - - ADD OBJECT 'comboSearchScopeHistory' AS gf_combosearchscope WITH ; - Anchor = 0, ; - BoundTo = .T., ; - ControlSource = "Thisform.oSearchEngine.oSearchOptions.cRecentScope", ; - Height = 25, ; - Left = 70, ; - Name = "comboSearchScopeHistory", ; - nexpressionstostore = 40, ; - Picture = , ; - SelectOnEntry = .T., ; - TabIndex = 10, ; - Top = 31, ; - Width = 397 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="combobox" /> - - ADD OBJECT 'containerLeft' AS container WITH ; - Anchor = 5, ; - BackColor = 255,255,255, ; - Height = 537, ; - Left = 2, ; - Name = "containerLeft", ; - Picture = ..\images\, ; - TabIndex = 17, ; - Top = 59, ; - Width = 187 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerLeft.cntVersion' AS container WITH ; - Anchor = 14, ; - BorderWidth = 0, ; - Height = 25, ; - Left = -2, ; - Name = "cntVersion", ; - Picture = ..\images\, ; - Top = 513, ; - Width = 186 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerLeft.cntVersion.cmdVFPX' AS commandbutton WITH ; - Anchor = 6, ; - Caption = "", ; - Height = 22, ; - Left = 154, ; - Name = "cmdVFPX", ; - Picture = ..\images\vfpxpoweredby_alternative.gif, ; - PicturePosition = 1, ; - SpecialEffect = 2, ; - TabIndex = 16, ; - ToolTipText = "Go to VFPX home page", ; - Top = 2, ; - Width = 93 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerLeft.cntVersion.Gf_versionlabel1' AS gf_versionlabel WITH ; - Alignment = 0, ; - Anchor = 4, ; - FontName = "Arial", ; - Height = 13, ; - Left = 8, ; - Name = "Gf_versionlabel1", ; - TabIndex = 13, ; - Top = 6, ; - Width = 178 - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="label" /> - - ADD OBJECT 'containerLeft.oTreeView' AS olecontrol WITH ; - Anchor = 15, ; - Height = 513, ; - Left = 0, ; - Name = "oTreeView", ; - Top = 0, ; - Width = 186 - *< END OBJECT: BaseClass="olecontrol" OLEObject="c:\windows\syswow64\mscomctl.ocx" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAnF3dEINcBAwAAAEACAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAagAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABcAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAACABAAAAAAAABAAAAAIAAAD+////BQAAAP7///8GAAAABwAAAAgAAAD+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+2kEHHiYXREbFqAMDwKDYoIUM0EggAAAA5EwAABTUAALE8wWoBAAYAIgAAABkAAAARAgAACgAAACkzrAAB782rXAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MzY4MjY1RS04NUZFLTExZDEtOEJFMy0wMDAwRjg3NTREQTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACADgAAAEhpZGVTZWxlY3Rpb24ABQAAAEwAAAAADAAAAEluZGVudGF0aW9uABEAAABODQAAAAcAAAAAAAAAAAAFAPg0rAAGAAAAAAAAAAUAAIDU4BkAAQAAAFwAH97svQEABQAY4RkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANEAKAAAATGluZVN0eWxlAAkAAABJCgAAAAEAAAANAAAATW91c2VQb2ludGVyAAkAAABJCgAAAAAAAAAOAAAAUGF0aFNlcGFyYXRvcgAKAAAASAAAAAABAAAAXAYAAABTdHlsZQAJAAAASQoAAAAGAAAADAAAAE9MRURyYWdNb2RlAAkAAABJCgAAAAAAAAAMAAAAT0xFRHJvcE1vZGUACQAAAEkKAAAAAAAAAA4AAABGdWxsUm93U2VsZWN0AAUAAABMAQAAAAoAAABTaW5nbGVTZWwABQAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" /> - - ADD OBJECT 'containerRight' AS container WITH ; - Anchor = 15, ; - Height = 537, ; - Left = 199, ; - Name = "containerRight", ; - Picture = ..\images\, ; - TabIndex = 20, ; - Top = 57, ; - Width = 800 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerRight.Container1' AS container WITH ; - Anchor = 10, ; - Height = 357, ; - Left = 0, ; - Name = "Container1", ; - Picture = ..\images\, ; - TabIndex = 5, ; - Top = 0, ; - Width = 800 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerRight.Container1.chkReplaceMode' AS checkbox WITH ; - Alignment = 0, ; - Caption = "\ - - ADD OBJECT 'containerRight.Container1.cmdClassBrowser' AS commandbutton WITH ; - Caption = "", ; - Height = 20, ; - Left = 90, ; - Name = "cmdClassBrowser", ; - Picture = ..\images\class.bmp, ; - SpecialEffect = 2, ; - ToolTipText = "Open Class Browser", ; - Top = 5, ; - Width = 22, ; - ZOrderSet = 10 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.cmdEdit' AS commandbutton WITH ; - Caption = "", ; - Height = 19, ; - Left = 34, ; - Name = "cmdEdit", ; - Picture = ..\images\method.bmp, ; - SpecialEffect = 2, ; - ToolTipText = "Edit (same as double-clicking the row in the grid)", ; - Top = 5, ; - Width = 22, ; - ZOrderSet = 11 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.cmdGoToObject' AS commandbutton WITH ; - Caption = "", ; - Height = 20, ; - Left = 62, ; - Name = "cmdGoToObject", ; - Picture = ..\images\obfind.bmp, ; - SpecialEffect = 2, ; - ToolTipText = "Modify this form or class and then select this object, if possible.", ; - Top = 5, ; - Width = 22, ; - ZOrderSet = 0 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.cmdMenu' AS commandbutton WITH ; - Caption = "", ; - Height = 20, ; - Left = 90, ; - Name = "cmdMenu", ; - Picture = ..\images\menu.bmp, ; - SpecialEffect = 2, ; - ToolTipText = "Display an outline of this menu, highlighting the prompt that matches the current line in the grid.", ; - Top = 5, ; - Width = 22, ; - ZOrderSet = 1 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.cmdOpenExplorer' AS commandbutton WITH ; - Caption = "", ; - Height = 20, ; - Left = 118, ; - Name = "cmdOpenExplorer", ; - Picture = ..\images\browsefolder.bmp, ; - SpecialEffect = 2, ; - ToolTipText = "Open Explorer window to this path.", ; - Top = 5, ; - Width = 22, ; - ZOrderSet = 5 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.cmdReport' AS commandbutton WITH ; - Caption = "E\ - - ADD OBJECT 'containerRight.Container1.cmdSearchErrors' AS commandbutton WITH ; - Caption = "!", ; - FontBold = .T., ; - FontSize = 12, ; - Height = 22, ; - Left = 2, ; - Name = "cmdSearchErrors", ; - Picture = ..\images\yellow_exclamation_16.bmp, ; - PicturePosition = 14, ; - SpecialEffect = 2, ; - ToolTipText = "Show search errors", ; - Top = 4, ; - Width = 24 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.Command1' AS commandbutton WITH ; - Caption = "", ; - Height = 22, ; - Left = 253, ; - Name = "Command1", ; - Picture = ('images\refhelp.bmp'), ; - PicturePosition = 1, ; - SpecialEffect = 2, ; - TabIndex = 16, ; - ToolTipText = "How Replace works", ; - Top = 5, ; - Width = 24 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.Container1' AS container WITH ; - BackStyle = 0, ; - BorderColor = 255,0,0, ; - BorderWidth = 2, ; - Height = 27, ; - Left = 298, ; - Name = "Container1", ; - Picture = ..\images\, ; - Top = 1, ; - Width = 129 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerRight.Container1.Container1.chkApplyFilter' AS checkbox WITH ; - Alignment = 0, ; - Anchor = 8, ; - Caption = "Apply", ; - ControlSource = "Thisform.lApplyFilter", ; - FontSize = 8, ; - Height = 20, ; - Left = 74, ; - Name = "chkApplyFilter", ; - Picture = ..\images\, ; - TabIndex = 7, ; - Top = 4, ; - Width = 48 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerRight.Container1.Container1.cmdFilter' AS commandbutton WITH ; - Caption = "\ - - ADD OBJECT 'containerRight.Container1.Container2' AS container WITH ; - BackStyle = 0, ; - BorderColor = 255,0,0, ; - BorderWidth = 2, ; - Height = 25, ; - Left = 437, ; - Name = "Container2", ; - Top = 3, ; - Width = 83 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerRight.Container1.Container2.chkCodeOnly' AS checkbox WITH ; - Alignment = 0, ; - AutoSize = .T., ; - Caption = "Code Only", ; - ControlSource = "Thisform.lcodeonly", ; - FontBold = .F., ; - FontItalic = .F., ; - FontName = "Arial", ; - FontSize = 8, ; - Height = 16, ; - Left = 7, ; - Name = "chkCodeOnly", ; - TabIndex = 7, ; - Top = 4, ; - Width = 68 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText' AS container WITH ; - Anchor = 10, ; - BackColor = 199,226,254, ; - BorderWidth = 1, ; - Height = 84, ; - Left = 0, ; - Name = "containerReplaceText", ; - Picture = ..\images\, ; - Top = 28, ; - Width = 800 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.cmdReplaceErrors' AS commandbutton WITH ; - Caption = "!", ; - FontBold = .T., ; - FontSize = 12, ; - Height = 28, ; - Left = 491, ; - Name = "cmdReplaceErrors", ; - Picture = ..\images\errors.bmp, ; - PicturePosition = 14, ; - SpecialEffect = 2, ; - ToolTipText = "Show search errors", ; - Top = 1, ; - Width = 88 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.cmdReplaceHistory' AS commandbutton WITH ; - Caption = "View Replace History", ; - Enabled = .T., ; - FontSize = 8, ; - Height = 22, ; - Left = 363, ; - Name = "cmdReplaceHistory", ; - Picture = ..\images\, ; - Top = 3, ; - Visible = .T., ; - Width = 116 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.optiongroupReplaceMode' AS optiongroup WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - ButtonCount = 3, ; - ControlSource = "Thisform.nReplaceMode", ; - Height = 27, ; - Left = 24, ; - Name = "optiongroupReplaceMode", ; - Themes = .F., ; - Top = 1, ; - Value = 0, ; - Width = 273, ; - Option1.AutoSize = .F., ; - Option1.BackStyle = 0, ; - Option1.Caption = "Replace \ - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe' AS pageframe WITH ; - Anchor = 10, ; - ErasePage = .T., ; - Height = 55, ; - Left = 0, ; - Name = "Pageframe", ; - PageCount = 3, ; - Tabs = .F., ; - TabStyle = 1, ; - Themes = .F., ; - Top = 25, ; - Width = 800, ; - Page1.BackStyle = 0, ; - Page1.Caption = "Replace Text", ; - Page1.Name = "Page1", ; - Page1.Picture = ..\images\, ; - Page2.BackStyle = 0, ; - Page2.Caption = "Edit Line", ; - Page2.Name = "Page2", ; - Page2.Picture = ..\images\, ; - Page3.BackStyle = 0, ; - Page3.Caption = "Advanced Search", ; - Page3.Name = "Page3", ; - Page3.Picture = ..\images\ - *< END OBJECT: BaseClass="pageframe" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdCheckAll' AS commandbutton WITH ; - Caption = "Check All", ; - Enabled = .T., ; - FontSize = 8, ; - Height = 22, ; - Left = 4, ; - Name = "cmdCheckAll", ; - Picture = ..\images\, ; - Top = 28, ; - Visible = .T., ; - Width = 55 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdClearAll' AS commandbutton WITH ; - Caption = "Clear All", ; - Enabled = .T., ; - FontSize = 8, ; - Height = 22, ; - Left = 68, ; - Name = "cmdClearAll", ; - Picture = ..\images\, ; - Top = 28, ; - Visible = .T., ; - Width = 51 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdReplace' AS commandbutton WITH ; - Anchor = 0, ; - Caption = "Replace checked", ; - FontSize = 8, ; - Height = 22, ; - Left = 205, ; - Name = "cmdReplace", ; - Picture = ('images\GoFish16.bmp'), ; - PicturePosition = 1, ; - TabIndex = 3, ; - Top = 28, ; - Width = 113 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page1.editReplaceExpression' AS editbox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.oSearchEngine.oSearchOptions.cReplaceExpression", ; - FontBold = .F., ; - FontItalic = .F., ; - FontName = "Courier New", ; - FontSize = 9, ; - Height = 23, ; - Left = 205, ; - Name = "editReplaceExpression", ; - TabIndex = 2, ; - Top = 3, ; - Width = 590, ; - ZOrderSet = 5 - *< END OBJECT: BaseClass="editbox" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page1.Label1' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Replacement Text", ; - FontBold = .F., ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 111, ; - Name = "Label1", ; - TabIndex = 7, ; - Top = 7, ; - Width = 88, ; - ZOrderSet = 7 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page2.cmdSaveLine' AS commandbutton WITH ; - Anchor = 0, ; - Caption = "Replace line", ; - FontSize = 8, ; - Height = 22, ; - Left = 205, ; - Name = "cmdSaveLine", ; - Picture = ('images\GoFish16.bmp'), ; - PicturePosition = 1, ; - Top = 28, ; - Width = 113 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page2.editReplaceLine' AS editbox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.cReplaceLine", ; - FontBold = .F., ; - FontItalic = .F., ; - FontName = "Courier New", ; - FontSize = 9, ; - Height = 23, ; - Left = 205, ; - Name = "editReplaceLine", ; - TabIndex = 2, ; - Top = 3, ; - Width = 590, ; - ZOrderSet = 5 - *< END OBJECT: BaseClass="editbox" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page2.lblReplaceLine' AS label WITH ; - Alignment = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Edit Current Line", ; - FontBold = .F., ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 15, ; - Left = 116, ; - Name = "lblReplaceLine", ; - TabIndex = 7, ; - Top = 8, ; - Width = 82, ; - ZOrderSet = 7 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdBrowse' AS commandbutton WITH ; - Anchor = 0, ; - Caption = "Select UDF", ; - FontBold = .F., ; - FontSize = 8, ; - Height = 20, ; - Left = 80, ; - Name = "cmdBrowse", ; - Picture = ..\images\, ; - Top = 4, ; - Width = 65 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdCheckAll' AS commandbutton WITH ; - Caption = "Check All", ; - Enabled = .T., ; - FontSize = 8, ; - Height = 22, ; - Left = 4, ; - Name = "cmdCheckAll", ; - Picture = ..\images\, ; - Top = 28, ; - Visible = .T., ; - Width = 55 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdClearAll' AS commandbutton WITH ; - Caption = "Clear All", ; - Enabled = .T., ; - FontSize = 8, ; - Height = 22, ; - Left = 68, ; - Name = "cmdClearAll", ; - Picture = ..\images\, ; - Top = 28, ; - Visible = .T., ; - Width = 51 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdEdit' AS commandbutton WITH ; - Caption = "Edit UDF", ; - FontSize = 8, ; - Height = 19, ; - Left = 147, ; - Name = "cmdEdit", ; - Picture = ..\images\, ; - Top = 4, ; - Width = 54 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdReplace' AS commandbutton WITH ; - Anchor = 0, ; - Caption = "Replace checked", ; - FontSize = 8, ; - Height = 22, ; - Left = 205, ; - Name = "cmdReplace", ; - Picture = ('images\GoFish16.bmp'), ; - PicturePosition = 1, ; - TabIndex = 3, ; - Top = 28, ; - Width = 113 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container1.containerReplaceText.Pageframe.Page3.Text1' AS textbox WITH ; - Anchor = 10, ; - ControlSource = "Thisform.cReplaceUDFFilename", ; - Enabled = .F., ; - FontBold = .F., ; - FontItalic = .F., ; - FontName = "Courier New", ; - FontSize = 9, ; - Height = 23, ; - Left = 205, ; - Name = "Text1", ; - Top = 2, ; - Width = 590 - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles' AS gf_grid WITH ; - Anchor = 15, ; - ColumnCount = 25, ; - DeleteMark = .F., ; - DragMode = 0, ; - FontName = "Arial", ; - FontSize = 8, ; - GridLineColor = 192,192,192, ; - Height = 276, ; - HighlightForeColor = 0,0,0, ; - HighlightStyle = 2, ; - Left = 1, ; - Name = "GridFiles", ; - Panel = 1, ; - RecordMark = .F., ; - RowHeight = 17, ; - TabIndex = 36, ; - Tag = "", ; - Top = 112, ; - Width = 798, ; - Column1.ColumnOrder = 3, ; - Column1.ControlSource = "", ; - Column1.FontName = "Arial", ; - Column1.FontSize = 8, ; - Column1.Movable = .F., ; - Column1.Name = "Column17", ; - Column1.ReadOnly = .F., ; - Column1.Visible = .T., ; - Column1.Width = 49, ; - Column2.ColumnOrder = 4, ; - Column2.FontName = "Arial", ; - Column2.FontSize = 8, ; - Column2.Movable = .F., ; - Column2.Name = "Column3", ; - Column2.ReadOnly = .F., ; - Column2.Visible = .T., ; - Column2.Width = 46, ; - Column3.ColumnOrder = 5, ; - Column3.FontName = "Arial", ; - Column3.FontSize = 8, ; - Column3.Movable = .F., ; - Column3.Name = "Column4", ; - Column3.ReadOnly = .F., ; - Column3.Visible = .T., ; - Column3.Width = 44, ; - Column4.ColumnOrder = 2, ; - Column4.FontName = "Arial", ; - Column4.FontSize = 8, ; - Column4.Movable = .F., ; - Column4.Name = "Column18", ; - Column4.ReadOnly = .F., ; - Column4.Visible = .T., ; - Column4.Width = 52, ; - Column5.Alignment = 2, ; - Column5.ColumnOrder = 1, ; - Column5.CurrentControl = "Check1", ; - Column5.FontName = "Arial", ; - Column5.FontSize = 8, ; - Column5.Name = "colProcess", ; - Column5.ReadOnly = .F., ; - Column5.Sparse = .F., ; - Column5.Visible = .T., ; - Column5.Width = 49, ; - Column6.ColumnOrder = 6, ; - Column6.FontName = "Arial", ; - Column6.FontSize = 8, ; - Column6.Name = "Column7", ; - Column6.ReadOnly = .F., ; - Column6.Visible = .T., ; - Column6.Width = 55, ; - Column7.ColumnOrder = 7, ; - Column7.FontName = "Arial", ; - Column7.FontSize = 8, ; - Column7.Name = "Column8", ; - Column7.ReadOnly = .F., ; - Column7.Visible = .T., ; - Column7.Width = 57, ; - Column8.FontName = "Arial", ; - Column8.FontSize = 8, ; - Column8.Name = "Column6", ; - Column8.ReadOnly = .F., ; - Column8.Visible = .T., ; - Column8.Width = 58, ; - Column9.FontName = "Arial", ; - Column9.FontSize = 8, ; - Column9.Name = "Column9", ; - Column9.ReadOnly = .F., ; - Column9.Visible = .T., ; - Column9.Width = 49, ; - Column10.FontName = "Arial", ; - Column10.FontSize = 8, ; - Column10.Name = "Column10", ; - Column10.ReadOnly = .F., ; - Column10.Visible = .T., ; - Column10.Width = 50, ; - Column11.ColumnOrder = 13, ; - Column11.FontName = "Arial", ; - Column11.FontSize = 8, ; - Column11.Name = "Column11", ; - Column11.ReadOnly = .F., ; - Column11.Visible = .T., ; - Column11.Width = 51, ; - Column12.ColumnOrder = 12, ; - Column12.FontName = "Arial", ; - Column12.FontSize = 8, ; - Column12.Name = "Column12", ; - Column12.ReadOnly = .F., ; - Column12.Visible = .T., ; - Column12.Width = 50, ; - Column13.ColumnOrder = 11, ; - Column13.FontName = "Arial", ; - Column13.FontSize = 8, ; - Column13.Name = "Column16", ; - Column13.ReadOnly = .F., ; - Column13.Visible = .T., ; - Column13.Width = 45, ; - Column14.FontName = "Arial", ; - Column14.FontSize = 8, ; - Column14.Name = "Column2", ; - Column14.Width = 54, ; - Column15.FontName = "Arial", ; - Column15.FontSize = 8, ; - Column15.Name = "Column13", ; - Column15.Width = 51, ; - Column16.FontName = "Arial", ; - Column16.FontSize = 8, ; - Column16.Name = "Column14", ; - Column16.Width = 41, ; - Column17.FontName = "Arial", ; - Column17.FontSize = 8, ; - Column17.Name = "Column15", ; - Column17.Width = 45, ; - Column18.FontName = "Arial", ; - Column18.FontSize = 8, ; - Column18.Name = "Column1", ; - Column18.Width = 49, ; - Column19.FontName = "Arial", ; - Column19.FontSize = 8, ; - Column19.Name = "Column5", ; - Column20.ColumnOrder = 20, ; - Column20.CurrentControl = "Text1", ; - Column20.FontName = "Arial", ; - Column20.FontSize = 8, ; - Column20.Name = "Column19", ; - Column20.Sparse = .F., ; - Column21.FontName = "Arial", ; - Column21.FontSize = 8, ; - Column21.Name = "Column20", ; - Column22.FontName = "Arial", ; - Column22.FontSize = 8, ; - Column22.Name = "Column21", ; - Column23.FontName = "Arial", ; - Column23.FontSize = 8, ; - Column23.Name = "Column22", ; - Column24.FontName = "Arial", ; - Column24.FontSize = 8, ; - Column24.Name = "Column23", ; - Column25.FontName = "Arial", ; - Column25.FontSize = 8, ; - Column25.Name = "Column25" - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="grid" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.colProcess.Check1' AS checkbox WITH ; - Alignment = 2, ; - Caption = "", ; - Centered = .T., ; - FontSize = 8, ; - Height = 17, ; - Left = 25, ; - Name = "Check1", ; - Picture = ..\images\, ; - ReadOnly = .F., ; - Top = 101, ; - Visible = .T., ; - Width = 60 - *< END OBJECT: BaseClass="checkbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.colProcess.Header1' AS header WITH ; - Alignment = 2, ; - Caption = "Process", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.colProcess.imageCheck' AS image WITH ; - Height = 16, ; - Left = 23, ; - Name = "imageCheck", ; - Picture = ..\images\check.bmp, ; - Top = 89, ; - Width = 50 - *< END OBJECT: BaseClass="image" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.colProcess.Label1' AS label WITH ; - Caption = "", ; - Height = 17, ; - Left = 22, ; - Name = "Label1", ; - Top = 68, ; - Width = 40 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.colProcess.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column1.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column1.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column10.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column10.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column11.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column11.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column12.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column12.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column13.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column13.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column14.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column14.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column15.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column15.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column16.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column16.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column17.Header1' AS header WITH ; - Alignment = 2, ; - BackColor = 128,128,128, ; - Caption = "Header1", ; - FontName = "Arial", ; - FontSize = 8, ; - ForeColor = 255,255,255, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column17.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontName = "Arial", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - SelectedBackColor = 255,255,0, ; - SelectedForeColor = 0,0,0, ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column18.Header1' AS header WITH ; - Alignment = 2, ; - BackColor = 128,128,128, ; - Caption = "Header1", ; - FontSize = 8, ; - ForeColor = 255,255,255, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column18.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontName = "Arial", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - SelectedBackColor = 255,255,0, ; - SelectedForeColor = 0,0,0, ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column19.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column19.Text1' AS textbox WITH ; - Alignment = 3, ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column2.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column2.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column20.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column20.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column21.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column21.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column22.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column22.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column23.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column23.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column25.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column25.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column3.Header1' AS header WITH ; - Alignment = 2, ; - BackColor = 128,128,128, ; - Caption = "Header1", ; - FontName = "Arial", ; - FontSize = 8, ; - ForeColor = 255,255,255, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column3.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontName = "Arial", ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - SelectedBackColor = 255,255,0, ; - SelectedForeColor = 0,0,0, ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column4.Header1' AS header WITH ; - Alignment = 2, ; - BackColor = 128,128,128, ; - Caption = "Header1", ; - FontSize = 8, ; - ForeColor = 255,255,255, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column4.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - SelectedBackColor = 255,255,0, ; - SelectedForeColor = 0,0,0, ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column5.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column5.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1" - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column6.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column6.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column7.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column7.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column8.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column8.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column9.Header1' AS header WITH ; - Caption = "Header1", ; - FontSize = 8, ; - Name = "Header1", ; - Picture = - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'containerRight.Container1.GridFiles.Column9.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .F., ; - Visible = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'containerRight.Container1.lblResults' AS label WITH ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "0 Instances found", ; - FontSize = 8, ; - ForeColor = 128,128,128, ; - Height = 16, ; - Left = 613, ; - Name = "lblResults", ; - TabIndex = 24, ; - Top = 8, ; - Width = 89 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'containerRight.Container2' AS container WITH ; - Anchor = 15, ; - Height = 169, ; - Left = 1, ; - Name = "Container2", ; - Picture = ..\images\, ; - TabIndex = 6, ; - Top = 367, ; - Width = 798 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerRight.Container2.containerWebControl' AS gf_webcontrol WITH ; - Anchor = 15, ; - BorderWidth = 0, ; - Height = 168, ; - Name = "containerWebControl", ; - Picture = ..\images\, ; - Top = 1, ; - Width = 799, ; - obrowser.Height = 144, ; - obrowser.Left = 1, ; - obrowser.Name = "obrowser", ; - obrowser.Top = 23, ; - obrowser.Width = 794, ; - obrowser.ZOrderSet = 2, ; - cmdZoomIn.Anchor = 0, ; - cmdZoomIn.Caption = "", ; - cmdZoomIn.Left = 196, ; - cmdZoomIn.Name = "cmdZoomIn", ; - cmdZoomIn.Picture = ..\images\gf_large_letter.bmp, ; - cmdZoomIn.SpecialEffect = 2, ; - cmdZoomIn.ToolTipText = "Zoom in on HTML Code View", ; - cmdZoomIn.Top = 1, ; - cmdZoomIn.ZOrderSet = 3, ; - cmdZoomOut.Anchor = 0, ; - cmdZoomOut.Caption = "", ; - cmdZoomOut.Left = 224, ; - cmdZoomOut.Name = "cmdZoomOut", ; - cmdZoomOut.Picture = ..\images\gf_small_letter.bmp, ; - cmdZoomOut.SpecialEffect = 2, ; - cmdZoomOut.ToolTipText = "Zoom out from HTML Code View", ; - cmdZoomOut.Top = -1, ; - cmdZoomOut.ZOrderSet = 4 - *< END OBJECT: ClassLib="..\lib\gofishwebtools.vcx" BaseClass="container" /> - - ADD OBJECT 'containerRight.Container2.containerWebControl.ButtonContainer' AS container WITH ; - Anchor = 10, ; - BackStyle = 0, ; - BorderWidth = 0, ; - Height = 23, ; - Left = 316, ; - Name = "ButtonContainer", ; - Picture = ..\images\, ; - Top = 0, ; - Width = 478 - *< END OBJECT: BaseClass="container" /> - - ADD OBJECT 'containerRight.Container2.containerWebControl.ButtonContainer.lblFilePath' AS label WITH ; - Anchor = 11, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Filename and path here...", ; - FontSize = 8, ; - Height = 16, ; - Left = 5, ; - Name = "lblFilePath", ; - TabIndex = 24, ; - Top = 4, ; - Width = 123, ; - ZOrderSet = 7 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'containerRight.Container2.containerWebControl.cmdCompressCodeview' AS commandbutton WITH ; - Anchor = 0, ; - Caption = "", ; - Height = 20, ; - Left = 280, ; - Name = "cmdCompressCodeview", ; - Picture = ..\images\gf_dnarrow.bmp, ; - SpecialEffect = 2, ; - Top = 1, ; - Width = 24, ; - ZOrderSet = 6 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container2.containerWebControl.cmdMaximizeCodeView' AS commandbutton WITH ; - Anchor = 0, ; - Caption = "", ; - Height = 20, ; - Left = 252, ; - Name = "cmdMaximizeCodeView", ; - Picture = ..\images\zoom-in-2-16.bmp, ; - SpecialEffect = 2, ; - Top = 1, ; - Width = 24, ; - ZOrderSet = 6 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'containerRight.Container2.containerWebControl.comboViewPosition' AS combobox WITH ; - Anchor = 0, ; - ControlSource = "Thisform.nCodeWindowPosition", ; - FontSize = 8, ; - Left = 108, ; - Name = "comboViewPosition", ; - Picture = , ; - Style = 2, ; - TabIndex = 24, ; - TabStop = .F., ; - Top = -1, ; - Width = 80, ; - ZOrderSet = 8 - *< END OBJECT: BaseClass="combobox" /> - - ADD OBJECT 'containerRight.Container2.containerWebControl.lblCodeView' AS label WITH ; - Alignment = 0, ; - Anchor = 0, ; - AutoSize = .T., ; - BackStyle = 0, ; - Caption = "Code View Position:", ; - FontBold = .F., ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 16, ; - Left = 8, ; - Name = "lblCodeView", ; - TabIndex = 7, ; - Top = 4, ; - Width = 99, ; - ZOrderSet = 9 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'containerRight.Splitter1' AS sfsplitterv WITH ; - Anchor = 10, ; - BackColor = 210,210,210, ; - cobject1name = Container1, ; - cobject2name = Container2, ; - Height = 10, ; - Left = 0, ; - Name = "Splitter1", ; - nobject2minsize = 25, ; - Picture = ..\images\, ; - TabIndex = 14, ; - Top = 357, ; - Width = 800, ; - gripper.GripperDot1.Name = "GripperDot1", ; - gripper.GripperDot1.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot1.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot1.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot2.Name = "GripperDot2", ; - gripper.GripperDot2.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot2.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot2.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot3.Name = "GripperDot3", ; - gripper.GripperDot3.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot3.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot3.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot4.Name = "GripperDot4", ; - gripper.GripperDot4.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot4.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot4.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot5.Name = "GripperDot5", ; - gripper.GripperDot5.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot5.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot5.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.Name = "gripper" - *< END OBJECT: ClassLib="..\lib\sfsplitter.vcx" BaseClass="control" /> - - ADD OBJECT 'containerRight.splitter3' AS sfsplitterh WITH ; - Anchor = 5, ; - BackColor = 210,210,210, ; - cobject1name = Container1, ; - cobject2name = Container2, ; - Height = 537, ; - Left = 587, ; - Name = "splitter3", ; - Picture = ..\images\, ; - TabIndex = 22, ; - Top = 2, ; - Visible = .F., ; - Width = 10, ; - gripper.GripperDot1.Name = "GripperDot1", ; - gripper.GripperDot1.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot1.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot1.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot2.Name = "GripperDot2", ; - gripper.GripperDot2.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot2.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot2.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot3.Name = "GripperDot3", ; - gripper.GripperDot3.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot3.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot3.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot4.Name = "GripperDot4", ; - gripper.GripperDot4.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot4.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot4.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot5.Name = "GripperDot5", ; - gripper.GripperDot5.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot5.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot5.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.Name = "gripper" - *< END OBJECT: ClassLib="..\lib\sfsplitter.vcx" BaseClass="control" /> - - ADD OBJECT 'editSearch' AS editbox WITH ; - Anchor = 0, ; - ControlSource = "Thisform.oSearchEngine.oSearchOptions.cSearchExpression", ; - Height = 26, ; - Left = 47, ; - Name = "editSearch", ; - SelectOnEntry = .T., ; - TabIndex = 2, ; - Top = 3, ; - Width = 400 - *< END OBJECT: BaseClass="editbox" /> - - ADD OBJECT 'imgScopeIcon' AS image WITH ; - Height = 16, ; - Left = 49, ; - Name = "imgScopeIcon", ; - Picture = ..\images\, ; - Top = 36, ; - Width = 16 - *< END OBJECT: BaseClass="image" /> - - ADD OBJECT 'lblScope' AS label WITH ; - BackColor = 0,128,0, ; - BackStyle = 0, ; - Caption = "Scope:", ; - FontBold = .F., ; - FontItalic = .F., ; - FontSize = 8, ; - ForeColor = 0,0,0, ; - Height = 13, ; - Left = 6, ; - Name = "lblScope", ; - TabIndex = 18, ; - Top = 35, ; - Width = 35 - *< END OBJECT: BaseClass="label" /> - - ADD OBJECT 'lblSearch' AS label WITH ; - BackColor = 0,128,0, ; - BackStyle = 0, ; - Caption = "\ - - ADD OBJECT 'ProgressBar' AS gf_progressbar WITH ; - Left = 235, ; - Name = "ProgressBar", ; - Picture = ..\images\, ; - TabIndex = 23, ; - Top = 307, ; - Image1.Name = "Image1", ; - Image1.Picture = ..\images\progressbarbackground.bmp, ; - Box.Name = "Box", ; - Box.Picture = ..\images\, ; - bar.Image1.Name = "Image1", ; - bar.Image1.Picture = ..\images\progressbar.bmp, ; - bar.Name = "bar", ; - bar.Picture = ..\images\, ; - Label1.Name = "Label1", ; - Label2.Name = "Label2" - *< END OBJECT: ClassLib="..\lib\gofishui.vcx" BaseClass="container" /> - - ADD OBJECT 'splitter2' AS sfsplitterh WITH ; - Anchor = 5, ; - BackColor = 210,210,210, ; - cobject1name = containerLeft, ; - cobject2name = containerRight, ; - Height = 537, ; - Left = 189, ; - Name = "splitter2", ; - Picture = ..\images\, ; - TabIndex = 22, ; - Top = 58, ; - Width = 10, ; - gripper.GripperDot1.Name = "GripperDot1", ; - gripper.GripperDot1.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot1.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot1.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot2.Name = "GripperDot2", ; - gripper.GripperDot2.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot2.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot2.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot3.Name = "GripperDot3", ; - gripper.GripperDot3.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot3.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot3.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot4.Name = "GripperDot4", ; - gripper.GripperDot4.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot4.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot4.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.GripperDot5.Name = "GripperDot5", ; - gripper.GripperDot5.ShapeDark.Name = "ShapeDark", ; - gripper.GripperDot5.ShapeLight.Name = "ShapeLight", ; - gripper.GripperDot5.ShapeMiddle.Name = "ShapeMiddle", ; - gripper.Name = "gripper" - *< END OBJECT: ClassLib="..\lib\sfsplitter.vcx" BaseClass="control" /> - - ADD OBJECT 'timerShowAdvancedForm' AS timer WITH ; - Height = 25, ; - Left = 24, ; - Name = "timerShowAdvancedForm", ; - Top = 564, ; - Width = 25 - *< END OBJECT: BaseClass="timer" /> - - PROCEDURE Activate - Local lcApp, lcProc, lcScope, lcProcedures - - *!* ******************** Removed 05/12/2016 ***************** - *!* *-- This code was added 2012-08-30 to allow GF to work properly with 'IntellisenseX by Dot' from Thor - *!* This.cOnKeyLabelDot = On('Key', '.') - *!* On Key Label . - - Thisform.lAutoYield = _VFP.AutoYield - _VFP.AutoYield = .T. - - lcApp = '' - - Try - lcApp = _Screen._GoFish.cAppPath + _Screen._GoFish.cAppName - Catch - MessageBox('Error: Cannot find _Screen._GoFish object.', 0, 'GoFish error:') - Endtry - - *-- Need to restore these Procedure files in case the user clears them out outside of this form. - If !Empty(lcApp) - lcProcedures = Upper(Set('Procedure')) - lcProc = 'GoFishSearchEngine' - If !(Upper(lcProc) $ lcProcedures) - Try - Set Procedure To &lcProc Additive - Catch - MessageBox('Cannot restore procedure file ' + lcProc , 0, 'GoFish error:') - EndTry - Endif - - lcProc = 'GF_PEME_BaseTools' - If !(Upper(lcProc) $ lcProcedures) - Try - Set Procedure To &lcProc Additive - Catch - MessageBox('Cannot restore procedure file ' + lcProc, 0, 'GoFish error:') - EndTry - Endif - Endif - - ThisForm.UpdateSearchScopeVariables() - - lcScope = Thisform.GetCurrentScope() - - With Thisform.comboSearchScopeHistory - .LoadRows() - .SaveSearchScope(lcScope) - .Value = Lower(lcScope) - Endwith - - Set Talk Off && Just in case user has turn this on somehow or accidentally - Set Echo Off - Set Exact On - Set Deleted On - - Set Safety Off - - Thisform.comboSearchExpressionHistory.Requery() - - - *--- Update UDF info on Advanced Replace stuff ------------------ - If !Empty(Thisform.cReplaceUDFFilename) and File(Thisform.cReplaceUDFFilename) - Thisform.oSearchEngine.cReplaceUDFCode = FileToStr(Thisform.cReplaceUDFFilename) - Else - Thisform.cReplaceUDFFilename = '' - Thisform.oSearchEngine.cReplaceUDFCode = '' - Endif - - If Thisform.nReplaceMode = 3 && Update the Replace lines, in case the UDF has been modified. - Thisform.DoReplace(.t.) - Endif - - - Thisform.Refresh() - - - - ENDPROC - - PROCEDURE addclassestotreeview - Lparameters toVcxNode, tcClassLib - - Local lcAlias, lcClass, lcClassLibFilter, lcFileName, lcFilter, lcWhere, lnSelect, loClassLibsNode - Local loException - - lnSelect = Select() - lcAlias = Thisform.cSearchResultsAlias - - lcClassLibFilter = 'filepath = [' + Alltrim(m.tcClassLib) + ']' - - lcFilter = Alltrim(Filter(m.lcAlias)) - lcWhere = 'Where ' + m.lcFilter + Iif(Not Empty(m.lcFilter), ' and ', '') + m.lcClassLibFilter - Select FileName, Class, Id From (m.lcAlias) &lcWhere Order By Class, ID Into Cursor 'Classes' - - Scan For Not Empty(Class) - lcFileName = Alltrim(FileName) - lcClass = Alltrim(Class) - Try - loClassLibsNode = Thisform.oTree.Nodes.Add(m.toVcxNode.Key, 4, 'Class_' + Alltrim(Str(Id)), m.lcClass, ,) - Catch To m.loException - Endtry - Locate For Alltrim(FileName) + Alltrim(Class) # m.lcFileName + m.lcClass Rest - - If Not Eof() - Skip - 1 - Endif - - Endscan - - Select (m.lnSelect) - - - - ENDPROC - - PROCEDURE adjustformforreplacepanel - Lparameters tlShow - - Local loGrid, loGridPanel, loReplacePanel - - loGridPanel = Thisform.containerRight.container1 - loGrid = Thisform.containerRight.container1.gridFiles - loReplacePanel = loGridPanel.containerReplaceText - - If Empty(Thisform.oSearchEngine.oSearchOptions.cReplaceExpression) - Thisform.oSearchEngine.oSearchOptions.cReplaceExpression = Thisform.oSearchEngine.oSearchOptions.cSearchExpression - Endif - - With loGrid - .Anchor = 0 - - If Thisform.lReplaceMode = .t. - .top = loReplacePanel.Top + loReplacePanel.Height - Else - .top = loReplacePanel.Top - Endif - - .Height = loGrid.Parent.Height - .Top - 1 - - .Anchor = 15 - Endwith - - Thisform.Refresh() - ENDPROC - - PROCEDURE applyfilter - Local lcFilter, lcTreeViewFilter - - If This.lApplyFilter - lcFilter = Evl(Thisform.cFilter, '') - Else - lcFilter = '' - Endif - - Do Case - Case Thisform.lCodeOnly = .F. - - Case Empty(m.lcFilter) - lcFilter = [MatchType = 'Code'] - Otherwise - lcFilter = [MatchType = 'Code' and ] + m.lcFilter - Endcase - - Set Filter To &lcFilter In (Thisform.cSearchResultsAlias) - - Goto Top In (Thisform.cSearchResultsAlias) - - Return m.lcFilter - - ENDPROC - - PROCEDURE buildsearchhistorycursor - Local laDirs[1], laInfo[1], lcDir, lcInfoFile, lcName, lcRoot, lnAlen - - lnSelect = Select() - - lcName = Thisform.cSavedSearchResultsFolder - lcRoot = Home(7) + lcName - - ADir(laDirs, Addbs(lcRoot) + "*",'D',1) - - If Type('laDirs') $ "UL" - Return 0 - EndIf - - lnAlen = Alen(laDirs) / 5 - - *-- Create cursor to hold the results - Select Space(24) as DateTime, ; - Space(40) as Search_Expression, ; - Space(10) as Results, ; - Space(150) as Scope, ; - Space(255) as SearchHistoryFolder ; - From (Thisform.oSearchEngine.cSearchResultsAlias) ; - Where 0 = 1 ; - Into Cursor gf_SearchHistory ReadWrite - - Index on DateTime DESCENDING Tag nnn - - For x = 1 to lnAlen - lcDir = laDirs[x,1] - lcInfoFile = Addbs(lcRoot) + Addbs(lcDir) + lcName + ".txt" - If File(lcInfoFile) - ALines(laInfo, FileToStr(lcInfoFile)) - - Append Blank - Replace DateTime with laInfo[1] - Replace Search_Expression with laInfo[2] - Replace Scope with laInfo[3] - Replace Results with laInfo[4] - Replace SearchHistoryFolder with Addbs(lcRoot) + Addbs(lcDir) - Endif - - EndFor - - Select(lnSelect) - - Return Reccount('gf_SearchHistory') - - - ENDPROC - - PROCEDURE checkall - Thisform.FilterGFSE() - - *-- Update local cursor - Replace process with .t. All in (Thisform.cSearchResultsAlias) ; - For replacerisk <= Thisform.nReplaceRisk and ; - replaced = .f. - - *-- Update GFSE cursor - Replace process with .t. All in (Thisform.oSearchEngine.cSearchResultsAlias) ; - For replacerisk <= Thisform.nReplaceRisk and ; - replaced = .f. - - Thisform.DoReplace(.t.) &&.t. means "Preview" Replace - - - ENDPROC - - PROCEDURE clearall - Thisform.FilterGFSE() - - Replace process with .f. all in (Thisform.cSearchResultsAlias) - Replace replaceline with '' for replaced = .f. in (Thisform.cSearchResultsAlias) - Replace trimmedreplaceline with '' for replaced = .f. in (Thisform.cSearchResultsAlias) - - Replace process with .f. all in (Thisform.oSearchEngine.cSearchResultsAlias) - Replace replaceline with '' for replaced = .f. in (Thisform.oSearchEngine.cSearchResultsAlias) - Replace trimmedreplaceline with '' for replaced = .f. in (Thisform.oSearchEngine.cSearchResultsAlias) - - Thisform.ClearGFSEFilter() - Goto top in (Thisform.cSearchResultsAlias) - Thisform.oGrid.SetFocus() - - - ENDPROC - - PROCEDURE cleargfsefilter - Set Filter To in (This.oSearchEngine.cSearchResultsAlias) - ENDPROC - - PROCEDURE clearsearchresultscursor - Local lcSafety, lnSelect - - lnSelect = Select() - - Select (This.cSearchResultsAlias) - - If Used(This.cSearchResultsAlias) - lcSafety = Set('Safety') - Set Safety Off - Zap in (This.cSearchResultsAlias) - Set Safety &lcSafety - Else - MessageBox('Error clearing search results cursor for new search.', 0, 'Error:') - Select (lnSelect) - Return .f. - EndIf - - Select (lnSelect) - - ENDPROC - - PROCEDURE cleartreeview - *Thisform.oTree.visible = .f. - Thisform.LockWindow(.t.) - Thisform.oTree.Nodes.Clear() - Thisform.LockWindow(.f.) - *Thisform.oTree.visible = .t. - - ENDPROC - - PROCEDURE clicktreeviewnode - Lparameters loNode - - Local lcAlias, lcFileType, lcFilter, lcNewFilter, lcNormalFilter, lnID, lnSelect, loTree - loTree = This.oTree - - lnSelect = Select() - lcAlias = Thisform.cSearchResultsAlias - lcFilter = '' - - *-- Build Filter clause for selected loNode---------------------------- - Do Case - Case m.loNode.Index = 1 && Master top loNode - lcFilter = '' - - Case m.loNode.Parent.Index = 1 && One of the Main Root Nodes - lcFileType = Upper(Getwordnum(m.loNode.Key, 2, '_')) - Do Case - Case m.lcFileType $ ' SCX VCX PRG FRX DBF PJX' - lcFilter = 'Upper(Filetype) = [' + m.lcFileType + ']' - Case Upper(m.lcFileType) = 'CLASSES' - lcFilter = 'not Empty(class) and (Upper(Filetype) $ [ VCX PRG ])' - Otherwise - lcFilter = '!(Upper(Filetype) $ [ SCX VCX PRG FRX DBF PJX ])' - Endcase - - Otherwise - lnID = Val(Getwordnum(m.loNode.Key, 2, '_')) - - If Thisform.NavigateToMasterRecord(m.lnID) - lcFilter = 'filepath = [' + Alltrim(FilePath) + ']' - Endif - Endcase - - If 'CLASS_' $ Upper(m.loNode.Key) - lcFilter = Iif(Empty(m.lcFilter), '', m.lcFilter + ' and ') + 'class = [' + Alltrim(Class) + ']' - Endif - - Thisform.cTreeViewFilter = lcFilter - - *--- Merge Main form filter and TreeView filter - lcNormalFilter = This.ApplyFilter() - Do Case - Case Empty(m.lcFilter) - lcNewFilter = m.lcNormalFilter - Case Empty(m.lcNormalFilter) - lcNewFilter = m.lcFilter - Otherwise - lcNewFilter = m.lcNormalFilter + ' and ' + m.lcFilter - Endcase - - Set Filter To &lcNewFilter In (Thisform.cSearchResultsAlias) - - Goto Top In (Thisform.cSearchResultsAlias) - - loTree = This.oTree - loTree.SelectedItem = m.loNode - - Select(m.lcAlias) - Set Filter To &lcNewFilter - Goto Top - - Thisform.oGrid.SetFocus - m.loTree.SetFocus() - *Thisform.Refresh() - - Select(m.lcAlias) - - - ENDPROC - - PROCEDURE combinefilters - Lparameters lcFilter1, lcFilter2 - - Return m.lcFilter1 + Iif(Empty(m.lcFilter1) Or Empty(m.lcFilter2), '', ' and ') + m.lcFilter2 - ENDPROC - - PROCEDURE confirmreplace - Local lcBackupOption, llBackup, lnResponse - - If Thisform.oSearchEngine.oSearchOptions.lDoNotShowReplaceWarning - Return .T. - Endif - - llBackup = Thisform.oSearchEngine.oSearchOptions.lBackup - - lcBackupOption = 'Backup option: ' + Iif(llBackup, '[Enabled]', '[*** DISABLED ***]') - - lnResponse = Messagebox('=============================================' + CR + ; - ' W A R N I N G ' + CR + ; - '=============================================' + CR + CR + ; - 'Are you SURE you are ready to Replace?' + CR + CR + ; - lcBackupOption + CR + CR + ; - 'These changes cannot be reversed!!', 3 + 32, 'GoFish Replace') - - If lnResponse <> 6 - Return .F. - Endif - - - - ENDPROC - - PROCEDURE Deactivate - Local lcDot - - _VFP.AutoYield = Thisform.lAutoYield - - *!* ******************** Removed 05/12/2016 ***************** - *!* *-- This code was added 2012-08-30 to allow GF to work properly with 'IntellisenseX by Dot' from ThorLocal lcDot - *!* lcDot = This.cOnKeyLabelDot - *!* On Key Label . &lcDot - - ENDPROC - - PROCEDURE Destroy - Local lcFolder, lcSearchEngineOptionsFile - - DoDefault() - - If thisform.dLastJanitorRunDate # Date() - Thisform.RunJanitor() - thisform.dLastJanitorRunDate = Date() - EndIf - - *-- Restore nSearchScope to original value if the Scope combo was used to make temporary selection --------- - If This.oSearchEngine.oSearchOptions.nSearchScope = 5 - This.oSearchEngine.oSearchOptions.nSearchScope = Evl(thisform.nOriginalSearchScope, 3) - EndIf - - If thisform.lReplaceMode - thisform.lReplaceMode = .F. && this removes the extra columns possibly visible from replace mode - EndIf - - If Thisform.lSaveSettings - *-- Save UI form settings XML file - * Wait 'Save GF form settings' Window at 20, 30 Nowait - This.SaveFormSettings() - *-- Save Search Engine settings - * Wait 'Save GF search engine settings' Window at 20, 30 Nowait - lcSearchEngineOptionsFile = Home(7) + This.cSearchOptionsXMLFile - This.oSearchEngine.SaveOptions(lcSearchEngineOptionsFile) - Endif - - This.oSearchOptions = .null. - This.oSearchEngine = .Null. - This.oGrid = .Null. - This.oBrowser = .null. - This.oTree = .null. - This.oWebControl = .null. - this.oFilter = .null. - - Release _Screen._GoFish - _Screen._GoFish = .null. - - Wait Clear - ENDPROC - - PROCEDURE doreplace - Lparameters tlPreviewReplace, tnCount && .t. means do a "Preview" Replace - - Local lnCurrentId - - If !tlPreviewReplace && If not doing a Preview, then we are doing a replace and will do some extra validation - If !ThisForm.ValidateReplaceExpression() or !ThisForm.ConfirmReplace() - Return .f. - EndIf - Thisform.oSearchEngine.oProgressBar = ThisForm.ProgressBar - ThisForm.ProgressBar.Start(tnCount, 'Replacing in selected lines...') - Else - Thisform.oSearchEngine.oProgressBar = null - Endif - - lnCurrentId = Evaluate(Thisform.cSearchResultsAlias + '.id') - - *Thisform.UpdateSearchEngineCursor()&& Copy over the Process settings from local cursor to GFSE cursor - Thisform.oSearchEngine.oSearchOptions.lAllowBlankReplace = .t. - Thisform.oSearchEngine.oSearchOptions.lPreviewReplace = tlPreviewReplace - - Thisform.FilterGFSE() - - Thisform.oSearchEngine.ReplaceMarkedRows(Thisform.oSearchEngine.cSearchResultsAlias) - - If !tlPreviewReplace && If not doing a Preview, then we are doing a replace and will do some extra validation - ThisForm.ProgressBar.Stop() - Endif - - If Thisform.oSearchEngine.oReplaceErrors.Count > 0 and !tlPreviewReplace - Thisform.containerRight.Container1.containerReplaceText.cmdReplaceErrors.Refresh() && To make sure the icon is visible before we show dialog box - MessageBox('Error(s) during replace operation. Click on red Error icon for more details.', 'Error:') - Endif - - ThisForm.ClearGFSEFilter() - - Thisform.UpdateFormAfteReplace(lnCurrentId) - - - - - ENDPROC - - PROCEDURE dosearch - Lparameters tlDoNotSearch - - Local lcMessage, lcScope, lcSearchExpression, lcSetEscape - Local loSearchEngine as 'GoFishSearchEngine' - Local loSearchOptions as 'GoFishSearchOptions' - - loSearchEngine = Thisform.oSearchEngine - loSearchOptions = Thisform.oSearchEngine.oSearchOptions - - Thisform.lApplyFilter = .f. - - This.lMaximizeCodeView = .F. - - This.lInit = .t. - Thisform.oSearchEngine.oSearchOptions.cReplaceExpression = '' - - If !tlDoNotSearch and !This.ValidateInputs() - Thisform.lSearching = .f. - Thisform.comboSearchScopeHistory.SetFocus() - Thisform.Refresh() - Return .f. - EndIf - - If loSearchOptions.lMatchWholeWord and Thisform.lWarnWholeWord =.t. - lnResponse = MessageBox('Use Whole Word search?', 3, 'Whole Word option...') - If lnResponse = 2 - Return .f. - EndIf - If lnResponse = 7 && NO - loSearchOptions.lMatchWholeWord = .f. - Endif - Endif - - lcSetEscape = Set('Escape') - Set Escape Off - - *!* ******************** Removed 11/10/2015 ***************** - *!* Set Typeahead To 1 - *!* Clear Typeahead - *!* KEYBOARD '{spacebar}' - - Thisform.lSearching = .T. - Thisform.nCurrentId = 0 - Thisform.cTreeViewFilter = '' - - If Thisform.lReplaceMode = .t. - Thisform.lReplaceMode = .f. - Endif - - Thisform.ClearTreeview() - - *-- This is required because I had problems getting the checkboxes to be usable after the cursor is zapped - *-- and then re-populated. This value will be restored after the search. - Thisform.oGrid.Setfocus() - Thisform.oGrid.colProcess.DynamicCurrentControl = '' - - Thisform.ClearSearchResultsCursor() && Go ahead and blank out the cursor so the grid will be empty during the search - - If !tlDoNotSearch - - Thisform.Refresh() - - *-- Save Search Expression --------------------------------------------------- - lcSearchExpression = Thisform.oSearchEngine.oSearchOptions.cSearchExpression - Thisform.comboSearchExpressionHistory.SaveSearchExpression(lcSearchExpression) - - *-- Save Search Scope --------------------------------------------------- - lcScope = Alltrim(Lower(Thisform.comboSearchScopeHistory.text)) - - lcMessage = 'Searching...' - Thisform.PopulateTreeview(lcMessage , 32768) - Thisform.ShowHtml('

   ' + lcMessage + '

') - - loSearchEngine.oProgressBar = ThisForm.ProgressBar - loSearchEngine.PrepareForSearch() && Blank out settings from last search so I can refresh the UI with blank value - - If '.PJX' $ Upper(lcScope) - lnReturn = loSearchEngine.SearchInProject(lcScope) - Else - *loSearchOptions.lIncludeSubDirectories = Thisform.chkSubdirectories.Value - lnReturn = loSearchEngine.SearchInPath(lcScope) - EndIf - - If lnReturn <= 0 and Thisform.oSearchEngine.oSearchErrors.count > 0 - MessageBox(Thisform.oSearchEngine.oSearchErrors[Thisform.oSearchEngine.oSearchErrors.count], 16, 'GoFish - Search error:') - Endif - - Set Escape &lcSetEscape - - Thisform.oSearchEngine.oSearchOptions.cReplaceExpression = lcSearchExpression - - Thisform.comboSearchScopeHistory.SaveSearchScope(lcScope) - Else - loSearchEngine.nMatchLines = Reccount(loSearchEngine.cSearchResultsAlias) - EndIf - - Thisform.UpdateFormAfterSearch() - - If !tlDoNotSearch and Thisform.lSaveSearchResults - Thisform.SaveSearchResults() - Endif - - - ENDPROC - - PROCEDURE editfile - Thisform.oSearchEngine.EditFromCurrentRow(thisform.cSearchResultsAlias) - ENDPROC - - PROCEDURE editmenufromcurrentrow - Thisform.oSearchEngine.EditMenuFromCurrentRow(thisform.cSearchResultsAlias) - ENDPROC - - PROCEDURE editobjectfromcurrentrow - Thisform.oSearchEngine.EditObjectFromCurrentRow(thisform.cSearchResultsAlias) - ENDPROC - - PROCEDURE expandallnodes - Local i - - For i = 1 To This.oTree.Nodes.Count - This.ExpandNode(This.oTree.Nodes.Item(i)) - EndFor - - Thisform.oTree.SelectedItem.EnsureVisible() - - - ENDPROC - - PROCEDURE exporttoexcel - Lparameters llToFile - - Local loExport As 'CreateExportCursor' - Local laFields[1], lcCursorName, lcExportCursor, lcFieldList, lcFile, lcFilter, lcName, lcOrderBy - Local lcResultsCursor, lcTempTable, lnResponse, lnSelect, lnX, loColumn - - If m.llToFile - lcFile = Getfile('xlsx, dbf', 'File Name:', 'Export to', 0, 'Export to DBF or XLSX') - If Empty(m.lcFile) - Return - Endif - - If Not Inlist(Justext(m.lcFile), 'DBF', 'XLSX') - Messagebox('Invalid file type') - Return - Endif - - If File(m.lcFile) - lnResponse = Messagebox('File [' + m.lcFile + '] exists. Overwrite?', 3, 'Overwrite file?') - If m.lnResponse # 6 - Return - Endif - Endif - Else - lcFile = 'GFResults.TMP' && awkward, but results from incomplete refactoring (used to indicate cursor by using TMP extension) - Endif - - lcFile = Upper(m.lcFile) - - lnSelect = Select() - lcResultsCursor = This.cSearchResultsAlias - - Dimension m.laFields[1, 2] - lcFieldList = '' - lnX = 1 - - *-- First choose visible columns - For Each m.loColumn In Thisform.oGrid.Columns - If m.loColumn.Visible = .T. - If m.lnX > 1 - Dimension m.laFields[m.lnX, 2] - Endif - laFields[m.lnX, 1] = Transform(m.loColumn.ColumnOrder, '999') - laFields[m.lnX, 2] = m.loColumn.ControlSource - lnX = m.lnX + 1 - Endif - Endfor - - = Asort(m.laFields) - - For Each m.loColumn In Thisform.oGrid.Columns - If m.loColumn.Visible = .F. - If m.lnX > 1 - Dimension m.laFields[m.lnX, 2] - Endif - laFields[m.lnX, 1] = Transform(m.loColumn.ColumnOrder, '999') - laFields[m.lnX, 2] = m.loColumn.ControlSource - lnX = m.lnX + 1 - Endif - Endfor - - For lnX = 1 To Alen(m.laFields) / 2 - If Not Empty(m.lcFieldList) - lcFieldList = m.lcFieldList + ',' - Endif - lcFieldList = m.lcFieldList + m.laFields[m.lnX, 2] - Endfor - - lcFilter = Filter(m.lcResultsCursor) - - If Not Empty(m.lcFilter) - lcFilter = 'Where ' + m.lcFilter - Endif - - If Not Empty(Thisform.cOrderBy) - lcOrderBy = 'Order By ' + Thisform.cOrderBy - Else - lcOrderBy = '' - Endif - - lcExportCursor = 'ResultForExcelExport' - - Goto Top - - Do Case - Case Justext(m.lcFile) = 'DBF' - Select &lcFieldList ; - From &lcResultsCursor &lcFilter &lcOrderBy ; - Into Table (m.lcFile) - Use - Messagebox('Exported to "' + m.lcFile + '"') - - Case Justext(m.lcFile) = 'XLSX' - Select &lcFieldList ; - From &lcResultsCursor &lcFilter &lcOrderBy ; - Into Cursor &lcExportCursor && Readwrite - - loExport = Createobject('CreateExports', Set('Datasession')) - lcName = m.loExport.ExportToExcel(m.lcExportCursor, m.lcFile) - - Case Justext(m.lcFile) = 'TMP' - lcTempTable = Addbs(Sys(2023)) + 'Cursor' + Sys(2015) + '.DBF' - Select &lcFieldList ; - From &lcResultsCursor &lcFilter &lcOrderBy ; - Into Table (m.lcTempTable) - Use - - loExport = Createobject('CreateExports', 1) - lcCursorName = Juststem(m.lcFile) - lcName = m.loExport.ExportToCursor(m.lcTempTable, m.lcCursorName) - Messagebox('Exported to cursor "' + m.lcName + '"') - - Endcase - - Select (m.lnSelect) - - ENDPROC - - PROCEDURE fillsearchresultscursor - Local lcCollate, lcField, lcOrderBy, lcSearchEngineResultsAlias, lcSearchResultsAlias - Local lcSecondarySortField, lcSecondarySortOrder, lcSortField, lcSortOrder, lcTertiarySortField - Local lcTertiarySortOrder, lnSelect, loColumn - - lcSearchEngineResultsAlias = Thisform.oSearchEngine.cSearchResultsAlias - lcSearchResultsAlias = Thisform.cSearchResultsAlias - - lnSelect = Select() - lcOrderBy = '' - - *** JRN 11/06/2015 : using !Empty(Field( to provide for case of changed field names in GF 5 - *-- Construct Order By clause for Select statement from stored form property - If !Empty(Thisform.cSortField) and !Empty(Field(Thisform.cSortField, lcSearchEngineResultsAlias)) - lcSortField = Thisform.cSortField - lcSortOrder = Thisform.cSortOrder - If (Empty(lcSortOrder) or ('ASC' $ Upper(lcSortOrder))) - lcSortOrder = 'ASC' - Endif - lcOrderBy = lcSortField + ' ' + lcSortOrder - Endif - - If !Empty(Thisform.cSortFieldSecondary) and !Empty(Field(Thisform.cSortFieldSecondary, lcSearchEngineResultsAlias)) - lcSecondarySortField = Thisform.cSortFieldSecondary - lcSecondarySortOrder = Thisform.cSortOrderSecondary - If (Empty(lcSecondarySortOrder) or ('ASC' $ Upper(lcSecondarySortOrder))) - lcSecondarySortOrder = 'ASC' - EndIf - lcOrderBy = lcOrderBy + ', ' + lcSecondarySortField + ' ' + lcSecondarySortOrder - Endif - - If !Empty(Thisform.cSortFieldTertiary) and !Empty(Field(Thisform.cSortFieldTertiary, lcSearchEngineResultsAlias)) - lcTertiarySortField = Thisform.cSortFieldTertiary - lcTertiarySortOrder = Thisform.cSortOrderTertiary - If (Empty(lcTertiarySortOrder) or ('ASC' $ Upper(lcTertiarySortOrder))) - lcTertiarySortOrder = 'ASC' - EndIf - lcOrderBy = lcOrderBy + ', ' + lcTertiarySortField + ' ' + lcTertiarySortOrder - Endif - - If Empty(lcOrderBy) - lcOrderBy = 'filename, class, name, methodname' - thisform.cSortField = GetWordNum(lcOrderBy, 1, ',') - Else - lcOrderBy = Alltrim(lcOrderBy, 1, ',') - EndIf - - Thisform.cOrderBy = lcOrderBy - - *-- Make header bold for primary sort column - If Thisform.lInit - For each loColumn in Thisform.oGrid.Columns - loColumn.header1.FontBold = .f. - lcField = GetWordNum(loColumn.ControlSource, 2, '.') - If Upper(lcField) = Upper(GetWordNum(lcOrderBy, 1, ', ')) - loColumn.header1.FontBold = .t. - Endif - Endfor - EndIf - - *-- This gives us case insensitive sorting... - lcCollate = Set('Collate') - Try - Set Collate To 'General' - Catch to loException - - EndTry - - lcOrderBy = lcOrderBy + ', filename, class, name, methodname, MatchStart' - *-- Create the local cursor if it does not already exist ----------------------- - If !Used(lcSearchResultsAlias) - Select * From (Select * From (lcSearchEngineResultsAlias) Order By &lcOrderBy) source; - Into Cursor (lcSearchResultsAlias) ReadWrite - - Else && Otherwise, Zap it and rebuild from GFSE cursor... - - Thisform.ClearSearchResultsCursor() && Zap it - *-- Build a temp local cursor in correct initial order - - *TODO: The orderby clause here could fail since some field names were changed - * in relase 4.3.015. Need to handle this... - Select * From (Select * From (lcSearchEngineResultsAlias) Order By &lcOrderBy) source ; - Into Cursor gf_temp_csr ReadWrite - - *-- Update local cursor in order that user has applied - *!* ******************** Removed 11/09/2015 ***************** - *!* Insert Into (lcSearchResultsAlias) Select * From gf_temp_csr - Select (lcSearchResultsAlias) - Append from (Dbf('gf_temp_csr')) - Endif - - Set Collate To (lcCollate) - - Select (lcSearchResultsAlias) - Goto Top - - Select (lnSelect) - - - - ENDPROC - - PROCEDURE filtergfse - Local lcFilter - - lcFilter = Filter(this.cSearchResultsAlias) - Set Filter To &lcFilter in (This.oSearchEngine.cSearchResultsAlias) - - ENDPROC - - PROCEDURE focusonreplacepageframe - Local loReplacePageframe - loReplacePageframe = This.Containerright.Container1.containerReplaceText.PageFrame - - Do Case - Case Thisform.nReplaceMode = 1 - m.loReplacePageframe.Page1.editReplaceExpression.SetFocus() - Case Thisform.nReplaceMode = 2 - m.loReplacePageframe.Page2.editReplaceLine.SetFocus() - Case Thisform.nReplaceMode = 3 - m.loReplacePageframe.Page3.cmdBrowse.SetFocus() - Endcase - - ENDPROC - - PROCEDURE formatgrid - *-- This method provides basic grid formatting when form is first launched, - *-- then, in the Form.Init(), the user settings will be loaded, which will - *-- restore column width and column order based on user's last sesssion. - - Local lcControlSourceField, lcDynamicBackColor, lcSearchResultsAlias, loColumn, loGrid - - loGrid = Thisform.oGrid - lcSearchResultsAlias = Thisform.cSearchResultsAlias - - ThisForm.oGrid.ArrangeColumns() - - *-- Set Header captions from Field name ----------------- - For Each loColumn In loGrid.columns - lcControlSourceField = Proper(Getwordnum(loColumn.ControlSource, 2, '.')) - loColumn.Width = 100 - loColumn.Header1.Caption = lcControlSourceField - loColumn.Header1.Alignment = 0 - loColumn.Header1.Tag = lcControlSourceField && Save ControlSource on tag so Options form can access it. - Endfor - - *-- Now, override a few Header captions so they'll read better ------------------ - *-- Note: Any "Visible = .f." settings assigned here oly affect GF the first time it is ever used. - * After first use, the XML settings files take over this visibility of columns. - - loColumn = loGrid.FindColumn('Process') - loColumn.Header1.caption = 'Replace' - loGrid.colProcess.Visible = .f. - loColumn.width = 50 - This.FormatProcessColumn() - - loColumn = loGrid.FindColumn('Filepath') - loColumn.Header1.caption = 'File Name with Path' - loColumn.Width = 200 - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('Filename') - loColumn.Header1.caption = 'File Name' - loColumn.Width = 200 - - loColumn = loGrid.FindColumn('Filetype') - loColumn.Header1.caption = 'Ext' - - loColumn = loGrid.FindColumn('TrimmedmatchLine') - loColumn.Header1.caption = 'Match Line' - loColumn.Width = 200 - - loColumn = loGrid.FindColumn('TrimmedReplaceLine') - loColumn.Header1.caption = 'Replace Line' - lcDynamicBackColor = "ICase(replaced, RGB(149,249,147), replacerisk > Thisform.nReplaceRisk, Rgb(210,210,210), Rgb(255,255,255))" - loColumn.DynamicBackColor = lcDynamicBackColor - loColumn.Width = 200 - - loColumn = loGrid.FindColumn('Matchtype') - loColumn.Header1.caption = 'Match Type' - - loColumn = loGrid.FindColumn('Baseclass') - loColumn.Header1.caption = 'Base Class' - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('Parentclass') - loColumn.Header1.caption = 'Parent Class' - - loColumn = loGrid.FindColumn('ContainingClass') - loColumn.Header1.caption = 'Containing Class' - - loColumn = loGrid.FindColumn('Classloc') - loColumn.Header1.caption = 'Parent Class VCX' - - loColumn = loGrid.FindColumn('name') - loColumn.Header1.caption = 'Name' - - loColumn = loGrid.FindColumn('Methodname') - loColumn.Header1.caption = 'Method/Property Name' - - loColumn = loGrid.FindColumn('Class') - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('Type') - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('Recno') - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('ProcStart') - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('MatchStart') - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('MatchLen') - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('lIsText') - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('Code') - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('id') - loColumn.Visible = .f. - - loColumn = loGrid.FindColumn('MatchLine') - loColumn.Header1.caption = 'Match Line with white space' - loColumn.Visible = .f. - - - - ENDPROC - - PROCEDURE formatgridforreplacemode - Local llReplaceMode, lnOrder, lnWidth, loColumn - - llReplaceMode = Thisform.lReplaceMode - - loSourceColumn = This.ogrid.FindColumn('TrimmedMatchline') - - loColumn = This.ogrid.FindColumn('TrimmedReplaceline') - loColumn.Visible = m.llReplaceMode - loColumn.Width = m.loSourceColumn.Width - Do While m.loColumn.ColumnOrder # m.loSourceColumn.ColumnOrder + 1 - If m.loColumn.ColumnOrder < m.loSourceColumn.ColumnOrder - loColumn.ColumnOrder = m.loColumn.ColumnOrder + 1 - Else - loColumn.ColumnOrder = m.loColumn.ColumnOrder - 1 - Endif - Enddo - - loColumn = This.ogrid.FindColumn('Process') - loColumn.Visible = m.llReplaceMode&& and (Thisform.nReplaceMode # 2) - loColumn.Width = 50 - - Do While m.loColumn.ColumnOrder + 1 # m.loSourceColumn.ColumnOrder - If m.loColumn.ColumnOrder < m.loSourceColumn.ColumnOrder - loColumn.ColumnOrder = m.loColumn.ColumnOrder + 1 - Else - loColumn.ColumnOrder = m.loColumn.ColumnOrder - 1 - Endif - Enddo - - Thisform.oGrid.Refresh() && This is important to get the Grid to hide the above columns be next method call. - - * ================================================================================ - * ================================================================================ - - - *!* ******************** Removed 10/28/2015 ***************** - *!* *-- In Replace Mode, we will show the Replace checkboc column to the left of the Match column, - *!* *-- and the Replace Line column to the right of it. Hide these 2 columns if we are not in Replace Mode - - *!* *-- Finf the Match Line Column --- - *!* loColumn = This.oGrid.FindColumn('TrimmedMatchline') - *!* lnOrder = loColumn.ColumnOrder - *!* lnWidth = loColumn.Width - - - *!* *-- Work on the the Replace Line column... - *!* loColumn = This.oGrid.FindColumn('TrimmedReplaceline') - *!* This.ShowGridColumn(llReplaceMode, loColumn, lnOrder + 1, lnWidth) - - *!* *-- Work on the Replace Checkbox column... - *!* loColumn = This.oGrid.FindColumn('Process') - *!* This.ShowGridColumn(llReplaceMode, loColumn, lnOrder, 50) - - *!* Thisform.oGrid.Refresh() && This is important to get the Grid to hide the above columns be next method call. - - *!* Thisform.oGrid.ArrangeColumns() - - - - ENDPROC - - PROCEDURE formatprocesscolumn - Local lcReplaceColumnDynamicBackgroundColor, lcReplaceColumnDynamicCurrentControl, loColumn - - *-- This method is called from the GRid.Init() *AND* must be called after every search becuase I had trouble where the Replace checkboxes - *-- would quit working after a search, in certain situtations. Re-applying the DynamicCurrentControl setting here fixed the problem. - - loColumn = This.oGrid.FindColumn('Process') - - - Thisform.nReplaceRisk = 99 - - lcReplaceColumnDynamicCurrentControl = "ICase(replaced = .t., 'imageCheck', (replacerisk <= Thisform.nReplaceRisk) and (Thisform.nReplaceMode # 2), 'check1', 'label1')" - lcReplaceColumnDynamicBackgroundColor = "ICase(replacerisk = 2, RGB(255,255,128), replacerisk = 3 and Thisform.nReplaceRisk = 3, Rgb(255,192,0), Rgb(255,255,255))" - - If this.lInit - Thisform.oGrid.Setfocus() && It's important for the grid to have focus as these next settings below are applied - Endif - - loColumn.DynamicCurrentControl = lcReplaceColumnDynamicCurrentControl - loColumn.DynamicBackColor = lcReplaceColumnDynamicBackgroundColor - - - ENDPROC - - PROCEDURE getcurrentscope && Will return the Active Project, Browsed Project, Current Dir, or Browsed Dir depending on current setting of nSearchScope (Values: 1 through 4) - Local lcScope, lnScope - - *0=Not set, 1=Active Project, 2=Browse Project, 3=Current Dir, 4=Browse Directory, 5=A Selection from the Scope combo - - lnScope = Thisform.oSearchEngine.oSearchOptions.nSearchScope - - Do Case - - Case lnScope = 1 && Active Project - lcScope = Thisform.cActiveProject - - Case lnScope = 2 && Browsed Project - lcScope = This.oSearchEngine.oSearchOptions.cProject - - Case lnScope = 3 && Current Directory - lcScope = Thisform.cCurrentDir - - Case lnScope = 4 && Browsed Directory - lcScope = This.oSearchEngine.oSearchOptions.cPath - - Case lnScope = 0 or lnScope = 5 - lcScope = Alltrim(Thisform.comboSearchScopeHistory.Text) - - If Empty(lcScope) - lcScope = Thisform.cCurrentDir - Endif - - EndCase - - lcScope = Alltrim(lcScope) - lcScope = Rtrim(lcScope, '\') - - Return lcScope - ENDPROC - - PROCEDURE getlastsavedresultsfolder - Local laDirs[1], lcDir, lcFolder, lcName, lcRoot, lnAlen - - lcName = Thisform.cSavedSearchResultsFolder - lcRoot = Home(7) + lcName - - ADir(laDirs, Addbs(lcRoot) + "*",'D',1) - - If Type('laDirs') $ "UL" - Return '' - EndIf - - lnAlen = Alen(laDirs) / 5 - - *-- Get the last one in the list... - lcDir = laDirs[lnAlen, 1] - - lcFolder = Addbs(lcRoot) + Addbs(lcDir) - - Return lcFolder - - - ENDPROC - - PROCEDURE gridcolumnrightclick - Local lcChoice, lcChoice1, lcChoice2, lcClass, lcFileName, lnBar, lnI, loNode, loTag, loTree - - lcFileName = Trim(FilePath) - If Empty(m.lcFileName) - Return - Endif - - lcClass = Trim(Class) - - lcChoice = '' - lnBar = 0 - CreateContextMenu('FilterByFile') - - lcChoice1 = 'Filter by this File' - lnBar = m.lnBar + 1 - Define Bar (m.lnBar) Of FilterByFile Prompt (m.lcChoice1) - On Selection Bar (m.lnBar) Of FilterByFile m.lcChoice = [&lcChoice1] - - lcChoice2 = 'Filter by this Class' - If Not Empty(m.lcClass) - lnBar = m.lnBar + 1 - Define Bar (m.lnBar) Of FilterByFile Prompt (m.lcChoice2) - On Selection Bar (m.lnBar) Of FilterByFile m.lcChoice = [&lcChoice2] - Endif - - - Activate Popup FilterByFile - Release Popups FilterByFile - - Do Case - Case m.lcChoice = m.lcChoice1 - loTree = This.oTree - For lnI = 1 To m.loTree.Nodes.Count - loNode = m.loTree.Nodes[m.lni] - loTag = m.loNode.Tag - If 'C' = Vartype(m.loTag) And Substr(m.loNode.Key, 1 + At('_', m.loNode.Key, 2)) == m.lcFileName - This.ClickTreeviewNode(m.loNode) - Endif - Endfor - - Case m.lcChoice = m.lcChoice2 - loTree = This.oTree - - For lnI = 1 To m.loTree.Nodes.Count - loNode = m.loTree.Nodes[m.lni] - loTag = m.loNode.Tag - If 'O' = Vartype(m.loTag) ; - And Pemstatus(m.loTag, 'filepath', 5) ; - And Pemstatus(m.loTag, 'class', 5) ; - And m.loTag.FilePath == m.lcFileName ; - And m.loTag.Class == m.lcClass - This.ClickTreeviewNode(m.loNode) - Endif - Endfor - Endcase - - - - ENDPROC - - PROCEDURE gridheaderrightclick - Local lcChoice, lnBar - lcChoice = '' - lnBar = 0 - CreateContextMenu('GridHeaderMenu') - - lnBar = m.lnBar + 1 - Define Bar (m.lnBar) Of GridHeaderMenu Prompt 'Sort by this column' - On Selection Bar (m.lnBar) Of GridHeaderMenu m.lcChoice = 'Sort by this column' - - lnBar = m.lnBar + 1 - Define Bar (m.lnBar) Of GridHeaderMenu Prompt 'Secondary sort by this column' - On Selection Bar (m.lnBar) Of GridHeaderMenu m.lcChoice = 'Secondary sort by this column' - - lnBar = m.lnBar + 1 - Define Bar (m.lnBar) Of GridHeaderMenu Prompt 'Reset sort order to default' - On Selection Bar (m.lnBar) Of GridHeaderMenu m.lcChoice = 'Reset sort order to default' - - - Activate Popup GridHeaderMenu - Release Popups GridHeaderMenu - - Do Case - Case m.lcChoice = 'Reset sort order to default' - This.cSortField = 'filename' - This.cSortFieldSecondary = 'class' - This.cSortFieldTertiary = 'name' - This.cSortOrder = '' - This.cSortOrderSecondary = '' - This.cSortOrderTertiary = '' - - This.Fillsearchresultscursor() - - Case m.lcChoice = 'Sort by this column' - This.SortColumn() - - Case m.lcChoice = 'Secondary sort by this column' - This.Sortcolumnsecondary() - - Endcase - - This.Refresh() - - - - ENDPROC - - PROCEDURE Init - Lparameters tcProject - - Local loGrid, loSearchEngine, loSearchOptions - Local lcFolder, lcSearchEnginerOptionsFile, lcSearchExpression, loColumn - - Set Talk Off - Set Echo Off - Set Century On - - _Screen._GoFish.oResultsForm = this - - This.LockScreen = .T. - - This.Caption = 'GoFish ' + JustStem(_Screen._GoFish.cVersion) - - This.oBrowser = Thisform.containerRight.Container2.containerWebControl.oBrowser - - loSearchEngine = This.oSearchEngine - loSearchOptions = loSearchEngine.oSearchOptions - loGrid = Thisform.containerRight.Container1.gridFiles - - tcProject = Evl(tcProject, '') - - Thisform.UpdateSearchScopeVariables() - - *-- Create a local GF results cursor from GFSE cursor, then bind the grid to it - loGrid.ColumnCount = Fcount(Thisform.cSearchResultsAlias) - loGrid.RecordSource = (Thisform.cSearchResultsAlias) - Thisform.Refresh() - Thisform.FormatGrid() - - If This.lRestorePreviousSearchResultsOnStartup - lcFolder = Thisform.GetSavedResultsFolder() - Else - lcFolder = '' - EndIf - - lcSearchEnginerOptionsFile = Evl(lcFolder, Home(7)) + This.cSearchOptionsXMLFile - - loSearchEngine.LoadOptions(lcSearchEnginerOptionsFile) && Load search settings from previous session - Thisform.nOriginalSearchScope = loSearchOptions.nSearchScope - loSearchEngine.oSearchOptions.lIncludeAllFileTypes = .f. && Deprecated feature. Set to .f. to handle old XML files - loSearchEngine.oProgressBar = This.ProgressBar - - *ThisForm.RestoreIndex() && Must be called AFTER saved search options are loaded in from XML file - With loSearchOptions - .lStoreCode = .T. - .lCreateResultsCollection = .F. - Endwith - - *-- Load some default setting from form properties, then load stored settings from XML file - loGrid.FontSize = Thisform.nGridFontSize - This.oTree.Font.Size = Thisform.nGridFontSize - This.containerRight.Container2.containerWebControl.nZoom = This.nBrowserZoom - This.LoadFormSettings() && Form size and position, as well as a few custom properties that are store on the form - This.LoadFilterSettings() - *Thisform.FillSearchResultsCursor() && This will cause bold to be applied on the sort column header. - - *-- Add previous stored project... - If !Empty(loSearchOptions.cProject) and File(loSearchOptions.cProject) - loSearchEngine.SetProject(loSearchOptions.cProject) - EndIf - - *-- Add passed in Project... - If !Empty(tcProject) - If 'PJX' $ Upper(tcProject) - loSearchOptions.nSearchScope = 2 - If File(tcProject) - loSearchEngine.SetProject(FullPath(tcProject)) - Else - MessageBox('Passed project [' + tcProject + '] cannot be found.', 0, 'GoFish') - EndIf - Else - loSearchOptions.nSearchScope = 4 - loSearchEngine.oSearchOptions.cPath = tcProject - Endif - EndIf - - Thisform.ApplyFilter() - - ThisForm.PopulateTreeview() - - Thisform.oBrowser.Setfocus() && A trick to make the web control appear on the page, - && otherwise, it's doesn't appear properly at startup. - Thisform.SetCaption(Thisform.containerRight.container1.lblResults, '') - - For Each loColumn in Thisform.oGrid.Columns - BindEvent(loColumn.Header1, 'Click', Thisform, 'SortColumn') - Bindevent(m.loColumn.Header1, 'RightClick', Thisform, 'GridHeaderRightClick') - BindEvent(loColumn.Text1, 'RightClick', Thisform, 'GridColumnRightClick') - BindEvent(loColumn.Text1, 'DblClick', Thisform, 'EditFile') - Endfor - - Thisform.editSearch.SetFocus() - Thisform.editSearch.InteractiveChange() - - *-- Ensure that the current scope is in the SearchScopeHistory table - With Thisform.comboSearchScopeHistory - .LoadProjects(This.oSearchEngine.oProjects) - .SaveSearchScope(Lower(Thisform.GetCurrentScope())) - Endwith - - Thisform.Refresh() - - This.LockScreen = .F. - - DoDefault() - - If loSearchOptions.lShowAdvancedFormOnStartup - Thisform.timerShowAdvancedForm.Interval = 100 - Endif - - This.lInit = .t. - - If Thisform.lRestorePreviousSearchResultsOnStartup - Thisform.RestorePreviousSearch() - Endif - - - ENDPROC - - PROCEDURE KeyPress - Lparameters nKeyCode, nShiftAltCtrl - - Do Case - Case Thisform.lSearching = .F. And m.nKeyCode = 27 - Thisform.Release() - Case m.nKeyCode = 137 And Inlist(m.nShiftAltCtrl, 2, 3, 6, 7) && Ctrl + F11 - This.lMaximizeCodeView = Not This.lMaximizeCodeView - This.Refresh() - Endcase - - - ENDPROC - - PROCEDURE lmaximizecodeview_assign - Lparameters tlmaximizecodeview - Local lnHeight, lnWidth, loActiveControl - - If This.lMaximizeCodeView = m.tlmaximizecodeview - Return - Endif - - This.lMaximizeCodeView = m.tlmaximizecodeview - - Try - loActiveControl = This.ActiveControl - Catch to loException - - EndTry - - With This.Containerright - - If m.tlmaximizecodeview - lnWidth = .Width - lnHeight = .Height - - .Container1.Visible = .F. - .Splitter1.Visible = .F. - .Splitter3.Visible = .F. - - With .Container2 - .Anchor = 0 - .Top = 0 - .Left = 0 - .Width = m.lnWidth - .Height = m.lnHeight - .Anchor = 15 - Endwith - - Else - Thisform.nCodeWindowPosition = Thisform.nCodeWindowPosition - Endif - - Endwith - - Try - This.oBrowser.SetFocus() - Catch to loException - - EndTry - - This.editSearch.SetFocus() - ENDPROC - - PROCEDURE Load - Set Talk Off - Set Echo Off - - Thisform.lAutoYield = _VFP.AutoYield - _VFP.AutoYield = .T. - - DoDefault() - - This.Top = -2000 && See comments in LoadFormSettings() for explanation of this... - - This.cInitialDefaultDir = Addbs(Sys(5) + Sys(2003)) - This.oSearchEngine = CreateObject('GoFishSearchEngine') - This.oSearchOptions = This.oSearchEngine.oSearchOptions - - This.cActiveProject = Thisform.oSearchEngine.GetActiveProject() - - This.FillSearchResultsCursor() - - This.cHtmlCodeViewFilename = Addbs(Sys(2023)) + This.cSearchResultsAlias + '.html' - - If This.Top < 0 && Just in case the above -2000 didn't get reset properly in LoadFormSettings() - This.Top = 0 - Endif - - - ENDPROC - - PROCEDURE loadfiltersettings - This.oFilter = Createobject(This.cFilterOptionsClass) - This.oFilter.LoadFromFile(This.cFilterOptionsXMLFile) - ENDPROC - - PROCEDURE loadformsettings - Lparameters tlForceLoadFromHome7, tcFolder - - *-- tlForceLoadFromHome7 will force us to load from settings from Home(7) instead of the last search history folder. - - Local loMy As 'My' Of 'My.vcx' - Local lcDockWindow, lcFolder, lcSettingsFile, llDocked, llRestoreSizeAndPosition, lnDockPosition - Local lnX, loControl, loSettings - - llRestoreSizeAndPosition = .T. - - - *-- Note: In the Load() event, Form.Top is set to -2000 to prevent the form from appearing in the - *-- visible screen area and then being moved to the restored position. This caused an annoying - *-- flashing behavior than can be avoided with this trick. - *-- Therefore, we must be sure to bring the form back into the view area before we leave this method. - - If Not m.tlForceLoadFromHome7 And Thisform.lRestorePreviousSearchResultsOnStartup - lcFolder = Thisform.GetLastSavedResultsFolder() - Else - lcFolder = '' - Endif - - If Not Empty(m.tcFolder) - lcFolder = m.tcFolder - llRestoreSizeAndPosition = .F. - Endif - - lcSettingsFile = Addbs(Evl(m.lcFolder, Home(7))) + This.cUISettingsFile - - If Not File(m.lcSettingsFile) - This.Top = 0 && See note above - Return - Endif - - loMy = Newobject('My', 'My.vcx') - loSettings = m.loMy.Settings - - m.loSettings.Load(m.lcSettingsFile) - - If m.llRestoreSizeAndPosition - *-- Restore Docking settings (Code provided by Jim Nelson) ----------------- - *-- Important note: Dock settings MUST be restored before Lett and Top are restored in next step - Try - This.Dockable = m.loSettings.nDockable - llDocked = m.loSettings.lDocked - lnDockPosition = m.loSettings.nDockPosition - If This.Dockable = 1 And m.llDocked - lcDockWindow = m.loSettings.cDockWindow - Do Case - Case Not Empty (m.lcDockWindow) - Try - Dock Name Thisform Position 4 Window &lcDockWindow - Catch - - Endtry - Case Between (m.lnDockPosition, 0, 3) - This.Dock (m.lnDockPosition) - Endcase - Endif - Catch - Endtry - - *-- Resize form size and position-------------------- - If m.loSettings.Exists('FormTop') - With m.loSettings - This.Left = .FormLeft - This.Height = .FormHeight - This.Width = .FormWidth - Thisform.Resize() - Try - This.Containerright.Splitter1.MoveSplitterToPosition(.Splitter1Position) - Catch - Endtry - Try - This.Containerright.Splitter3.MoveSplitterToPosition(.Splitter3Position) - Catch - Endtry - Try - This.splitter2.MoveSplitterToPosition(.Splitter2Position) - Catch - Endtry - This.Top = .FormTop && Do this one last to finally bring the form into view. - Endwith - Else - This.Top = 0 - Endif - - With Thisform - .lRestorePreviousSearchResultsOnStartup = PropNvl(m.loSettings, 'lRestorePreviousSearchResultsOnStartup ', .T., .T.) - .Containerright.Container2.containerWebControl.nZoom = PropNvl(m.loSettings, 'nBowserZoom', 1) - .nSearchBoxFontSize = PropNvl(m.loSettings, 'nSearchBoxFontSize', Thisform.editSearch.FontSize, .T.) - .nGridFontSize = PropNvl(m.loSettings, 'nGridFontSize', Thisform.oGrid.FontSize, .T.) - .nTreeViewFontSize = PropNvl(m.loSettings, 'nTreeViewFontSize', Thisform.oGrid.FontSize, .T.) - .nReplaceMode = PropNvl(m.loSettings, 'nReplaceMode', 1) - Endwith - - Endif - - *-- Load other Form properties from My Settings ------------------------------------ - With Thisform - *.lIncludeSubDirectoriesCurrent = PropNvl(loSettings, 'lIncludeSubDirectoriesCurrent', .t.) - *.lIncludeSubDirectoriesBrowsed = PropNvl(loSettings, 'lIncludeSubDirectoriesBrowsed', .t.) - .lApplyFilter = PropNvl(m.loSettings, 'lApplyFilter', .F., .T.) - .lClearApplyFilter = PropNvl(m.loSettings, 'lClearApplyFilter', .T., .T.) - .cFilter = PropNvl(m.loSettings, 'cFilter', '', .T.) - - *.cSortFields = PropNvl(loSettings, 'cSortFields', '') && This one has been deprecated. See cSortField. - If Pemstatus(m.loSettings, 'cSortFields', 5) - .cSortField = Getwordnum(m.loSettings.cSortFields, 1, ',') - Else - .cSortField = PropNvl(m.loSettings, 'cSortField') - Endif - - .cSortOrder = PropNvl(m.loSettings, 'cSortOrder', '') - .cSortFieldSecondary = PropNvl(m.loSettings, 'cSortFieldSecondary', '') - .cSortOrderSecondary = PropNvl(m.loSettings, 'cSortOrderSecondary', '') - .cSortFieldTertiary = PropNvl(m.loSettings, 'cSortFieldTertiary', '') - .cSortOrderTertiary = PropNvl(m.loSettings, 'cSortOrderSecondary', '') - - .nReplaceRisk = Evl(PropNvl(m.loSettings, 'nReplaceRisk', 1), 1) - .cReplaceUDFFilename = PropNvl(m.loSettings, 'cReplaceUdfFilename', '') - - .nDropDownDisplayCount = PropNvl(m.loSettings, 'nDropDownDisplayCount', 20, .T.) - .nDropDownMaxMRU = PropNvl(m.loSettings, 'nDropDownMaxMRU', 7, .T.) - - .lWarnWholeWord = PropNvl(m.loSettings, 'lWarnWholeWord', .F., .T.) - .lSaveSearchResults = PropNvl(m.loSettings, 'lSaveSearchResults', .T., .T.) - .lCodeOnly = PropNvl(m.loSettings, 'lCodeOnly', .F., .T.) - - .nPreviousSessionTreeviewindex = PropNvl(m.loSettings, 'nSelectedTreeviewNode', 1, .T.) - .lOnlyFirstMatchInStatement = PropNvl(m.loSettings, 'lOnlyFirstMatchInStatement', .F., .T.) - - .nCodeWindowPosition = PropNvl(m.loSettings, 'CodeWindowPosition', 1, .T.) - - .nJanitorSearchHistoryDays = PropNvl(m.loSettings, 'nJanitorSearchHistoryDays ', 10000, .T.) - .nJanitorReplaceHistoryDays = PropNvl(m.loSettings, 'nJanitorReplaceHistoryDays', 10000, .T.) - .lRunJanitorDaily = PropNvl(m.loSettings, 'lRunJanitorDaily', .F., .T.) - .nTabsToSpaces = PropNvl(m.loSettings, 'nTabsToSpaces', 0, .T.) - - * Dates are stored as datetime! - .dLastJanitorRunDate = Ttod(PropNvl(m.loSettings, 'dLastJanitorRunDate', Dtot(Date() - 1), .T.)) - - Endwith - - *-- These fields were removed in version 4.3.015 and 4.3.041, so if they are used in the SortOrder, we have to reset it - If Inlist(Lower(Thisform.cSortFields), 'objectclass', 'objectbaseclass', 'objectname', 'containingclassbaseclass') - Thisform.cSortFields = '' - Thisform.cSortOrder = '' - Endif - - This.oGrid.FontSize = Thisform.nGridFontSize - This.oTree.Font.Size = Thisform.nTreeViewFontSize - - This.comboSearchExpressionHistory.DisplayCount = Thisform.nDropDownDisplayCount - This.comboSearchExpressionHistory.nMaxMRU = This.nDropDownMaxMRU - This.comboSearchExpressionHistory.LoadRows() - - This.comboSearchScopeHistory.DisplayCount = Thisform.nDropDownDisplayCount - This.comboSearchScopeHistory.nMaxMRU = This.nDropDownMaxMRU - This.comboSearchScopeHistory.LoadRows() - - *--- Restore Width, ColumnOrder, and Visible state to Grid columns ---------------- - lnX = 1 - - For Each m.loControl In Thisform.oGrid.Columns - loControl.Width = PropNvl(m.loSettings, m.loControl.Name + '_width', 100, .T.) - loControl.ColumnOrder = PropNvl(m.loSettings, m.loControl.Name + '_order', m.lnX, .T.) - loControl.Visible = PropNvl(m.loSettings, m.loControl.Name + '_visible', .T., .T.) - *loControl.Header1.FontBold = PropNvl(loSettings, loControl.name + '_BoldHeader', .f., .t.) - lnX = m.lnX + 1 - Endfor - - - ENDPROC - - PROCEDURE loadreplaceline - Local lcCursor, lcMatchLine, llReplaced - - lcCursor = This.cSearchResultsAlias - - lcMatchLine = &lcCursor..matchline - lnMatchLength = &lcCursor..matchlen - llReplaced = &lcCursor..replaced - - If !llReplaced - Thisform.cReplaceLine = Left(lcMatchLine, lnMatchLength) - Else - Thisform.cReplaceLine = '' - Endif - - - - ENDPROC - - PROCEDURE loadsavedresults - Lparameters tcSavedFolder - - Local laInfo[1], lcDbc, lcDbcAndTable, lcDbf, lcFolder, lcInfoFile, lcName, lcRoot, lcScope - Local lcSearchEngineResultsAlias, lcSearchEnginerOptionsFile, lcSearchExpression, loSearchEngine - Local loSearchOptions - - loSearchEngine = Thisform.oSearchEngine - lcSearchEngineResultsAlias = Thisform.oSearchEngine.cSearchResultsAlias - - lcName = Thisform.cSavedSearchResultsFolder - - If !Empty(tcSavedFolder) - If Atc("\", tcSavedFolder) > 0 - lcFolder = tcSavedFolder - Else - lcName = Thisform.cSavedSearchResultsFolder - lcRoot = Home(7) + lcName - lcFolder = Addbs(lcRoot) + tcSavedFolder - Endif - Else - lcFolder = Thisform.GetLastSavedResultsFolder() - Endif - - If Empty(lcFolder) - Return .f. - Endif - - lcDbc = lcFolder + lcName + ".dbc" - lcDbf = lcFolder + lcName + ".dbf" - lcDbcAndTable = lcDbc + "!" + lcName - lcInfoFile = lcFolder + lcName + ".txt" - - If File(lcDbc) and File(lcDbf) and File(lcInfoFile) - Try - lcCurrentDatabase = Set("Database") - Select * from (lcDbcAndTable) Order By filename, class, name, methodname Into Cursor (lcSearchEngineResultsAlias) ReadWrite - ALines(laInfo, FileToStr(lcInfoFile)) - *lcSearchExpression = laInfo[2] - lcScope = laInfo[3] - *Thisform.editSearch.Value = lcSearchExpression - Thisform.comboSearchScopeHistory.SaveSearchScope(lcScope) - *Thisform.comboSearchScopeHistory.Value = lcScope - Set Database To (lcDbc) - Close Database - Set Database To (lcCurrentDatabase) - Catch - EndTry - Endif - - *-- Load Search Engine Options for saved search results - loSearchOptions = loSearchEngine.oSearchOptions - lcSearchEnginerOptionsFile = Addbs(lcFolder) + "\" + This.cSearchOptionsXMLFile - loSearchEngine.LoadOptions(lcSearchEnginerOptionsFile) && Load search settings from previous session - Thisform.nOriginalSearchScope = loSearchOptions.nSearchScope - - *-- Load Form Settings for saved search results - *** JRN 10/15/2015 : REMOVED This.LoadFormSettings(.t., lcFolder) && Form size and position, as well as a few custom properties that are store on the form - - loSearchEngine.nMatchLines = Reccount(lcSearchEngineResultsAlias) - - ENDPROC - - PROCEDURE lockwindow - Lparameters tlLock, tnHWnd - - * From Doug Hennig's Win32API session at SW Fox 2012 - - Local lnHWnd - - Declare Integer LockWindowUpdate In Win32API ; - Integer nHandle - - Do Case - Case Not tlLock - lnHWnd = 0 - Case Pcount() = 1 - Declare Integer GetDesktopWindow In Win32API - lnHWnd = GetDesktopWindow() - Otherwise - lnHWnd = tnHWnd - Endcase - - LockWindowUpdate(lnHWnd) - - - ENDPROC - - PROCEDURE LostFocus - *Activate Screen - - ENDPROC - - PROCEDURE lreplacemode_assign - Lparameters tlReplaceMode - - llEnteringReplaceMode = tlReplaceMode = .t. and thisform.lReplaceMode = .f. - - *-- Cannot enable here if this feature is not enabled in Options - If Thisform.oSearchEngine.oSearchOptions.lEnableReplaceMode = .f. - Thisform.lReplaceMode = .f. - Else - Thisform.lReplaceMode = tlReplaceMode - Endif - - If Thisform.nReplaceMode = 0 - Thisform.nReplaceMode = 1 - Endif - - Thisform.AdjustFormForReplacePanel(tlReplaceMode) - Thisform.FormatGridForReplaceMode() - - Thisform.Refresh() - - If llEnteringReplaceMode and thisform.nReplaceMode = 3 - Do Form gofish_advaccedreplacehelp - EndIf - - - - ENDPROC - - PROCEDURE mhelpnotes - ENDPROC - - PROCEDURE navigatetomasterrecord - Lparameters tnId - - Local lcFullSearchResults, lcMessage - - lcFullSearchResults = Thisform.oSearchEngine.cSearchResultsAlias - - Select (lcFullSearchResults) - Locate for id = tnId - - If !Found() - lcMessage = 'Error locating selected record in master table. Id = [' + Alltrim(Str(tnId)) + ']' - MessageBox(lcMessage, 0, 'GoFish Error') - Return .f. - EndIf - - ENDPROC - - PROCEDURE ncodewindowposition_assign - Lparameters tnCodeWindowPosition - Local llToggleLockScreen, lnHeight, lnSplitterLeft, lnSplitterTop, lnWidth - This.nCodeWindowPosition = m.tnCodeWindowPosition - - llToggleLockScreen = Thisform.LockScreen = .F. - If m.llToggleLockScreen - Thisform.LockScreen = .T. - Endif - - With This.Containerright - lnWidth = .Width - lnHeight = .Height - - .Container1.Visible = .T. - .Splitter1.Visible = .T. - .Splitter3.Visible = .T. - - Do Case - Case m.tnCodeWindowPosition = 1 - With .Splitter1 - lnSplitterTop = .Top - .Visible = .T. - Endwith - With .Container1 - .Anchor = 0 - .Top = 0 - .Left = 0 - .Width = m.lnWidth - .Height = m.lnSplitterTop - .Anchor = 10 - Endwith - - With .Container2 - .Anchor = 0 - .Top = m.lnSplitterTop + 10 - .Left = 0 - .Width = m.lnWidth - .Height = Max(10, m.lnHeight - .Top) - .Anchor = 15 - Endwith - .Splitter3.Visible = .F. - - Case m.tnCodeWindowPosition = 2 - With .Splitter3 - lnSplitterLeft = .Left - .cObject1Name = 'Container1' - .cObject2Name = 'Container2' - .Visible = .T. - Endwith - With .Container1 - .Anchor = 0 - .Top = 0 - .Left = 0 - .Width = m.lnSplitterLeft - .Height = m.lnHeight - .Anchor = 5 - Endwith - - With .Container2 - .Anchor = 0 - .Top = 0 - .Left = m.lnSplitterLeft + 10 - .Width = Max(10, m.lnWidth - .Left) - .Height = m.lnHeight - .Anchor = 15 - Endwith - .Splitter1.Visible = .F. - - Case m.tnCodeWindowPosition = 3 - With .Splitter3 - lnSplitterLeft = .Left - .cObject1Name = 'Container2' - .cObject2Name = 'Container1' - .Visible = .T. - Endwith - With .Container2 - .Anchor = 0 - .Top = 0 - .Left = 0 - .Width = m.lnSplitterLeft - .Height = m.lnHeight - .Anchor = 5 - Endwith - - With .Container1 - .Anchor = 0 - .Top = 0 - .Left = m.lnSplitterLeft + 10 - .Width = Max(10, m.lnWidth - .Left) - .Height = m.lnHeight - .Anchor = 15 - Endwith - .Splitter1.Visible = .F. - - - Otherwise - - Endcase - - Endwith - - Thisform.Refresh() - - If m.llToggleLockScreen - Thisform.LockScreen = .F. - Endif - - Thisform.oBrowser.SetFocus() - - - ENDPROC - - PROCEDURE nreplacemode_assign - Lparameters tnReplaceMode - - Local loReplaceColumn - - If thisform.lInit and tnReplaceMode = 3 and tnReplaceMode <> Thisform.nReplaceMode - Do Form gofish_advaccedreplacehelp - Endif - - This.nReplaceMode = tnReplaceMode - Thisform.oSearchEngine.nReplaceMode = tnReplaceMode - - Thisform.AdjustFormForReplacePanel() - - *-- Need to refresh the grid with new Replace Line values from the selected mode - If This.lInit = .T. And !Thisform.lSearching - Thisform.DoReplace(.T.) && .t. means do a "Preview" Replace - Endif - - *-- Adjust header caption of Replace column - loColumn = This.oGrid.FindColumn('Process') - loColumn.Header1.Caption = Iif(Thisform.nReplaceMode = 2, 'Replaced', 'Replace') - - ENDPROC - - PROCEDURE populatetreeview - Lparameters tcMessage, tnColor - - Local laOthers[1], lcAlias, lcClass, lcExt, lcFileName, lcFilePath, lcFilter, lcRoot, lcWhere - Local lcWhere2, lnColor, lnSelect, loClassLibsNode, loClassNode, loDbfNode, loFormsNode, loNode - Local loOtherNode, loPJXNode, loPrgNode, loReportsNode, loTreeView, loItemNode - - lnSelect = Select() - - * Thisform.LockWindow(.t.) - - lcAlias = This.cSearchResultsAlias - loTreeView = Thisform.containerLeft.oTreeView - loTreeView.LabelEdit = 1 - - lcRoot = Evl(m.tcMessage, 'Results') - lnColor = Evl(m.tnColor, 0) - - loTreeView.Visible = .F. - - With m.loTreeView.Nodes - - .Clear() - - *-- Add topmost 'Results' node ---------------------------- - loNode = .Add(, , 'Results', m.lcRoot, ,) - loNode.Expanded = .T. - loNode.Bold = (Reccount(m.lcAlias) > 0) Or Pcount() > 0 - loTreeView.LineStyle = Iif(Eof(m.lcAlias), 0, 1) - - loNode.ForeColor = m.lnColor - - lcFilter = Filter(m.lcAlias) - lcWhere = Iif(Not Empty(m.lcFilter), 'Where ' + m.lcFilter, '') - - Select * From (m.lcAlias) &lcWhere Order By FileName, FilePath Into Cursor 'Files' - - *-- Create main category nodes if present in the filtered results - - * ================================================================================ - * new code for classes - Locate For Not Empty(Class) - If Found() - loClassNode = .Add('Results', 4, 'Root_Classes', 'Classes', ,) - lnSelect = Select() - lcWhere2 = Iif(Not Empty(m.lcWhere), m.lcWhere + ' and', 'Where') + [ InList(filetype, 'PRG', 'VCX') and Not Empty(Class)] - - Select Lower(Class) As Class, ; - FileName, ; - Lower(FilePath) As FilePath, ; - Min(Id) As Id ; - From Files ; - &lcWhere2 ; - Group By Class, FileName, FilePath ; - Order By 1, 2, 3 ; && 2021-03-21 Change submmited by JRN - Into Cursor crsr_Classes Readwrite - - Scan - lcClass = Class - lcFileName = FileName - Select * From crsr_Classes Where Class = m.lcClass And FileName # m.lcFileName Into Array laOthers - If _Tally # 0 - loItemNode = .Add('Root_Classes', 4, 'Class_' + Alltrim(Str(Id)) + '_X', Trim(Class) + ' (' + Justfname(Trim(FileName)) + ')', ,) - Else - loItemNode = .Add('Root_Classes', 4, 'Class_' + Alltrim(Str(Id)) + '_X', Trim(Class), ,) - EndIf - - loTag = CreateObject('Empty') - AddProperty(loTag, 'Filename', Trim(FileName)) - AddProperty(loTag, 'FilePath', Trim(FilePath)) - AddProperty(loTag, 'Class', Trim(Class)) - loItemNode.tag = loTag - - Endscan - loClassNode.Bold = .T. - loClassNode.Expanded = .T. - Select(m.lnSelect) - Endif - * ================================================================================ - - Locate For Upper(FileType) = 'VCX' - If Found() - loClassLibsNode = .Add('Results', 4, 'Root_VCX', 'ClassLibs', ,) - loClassLibsNode.Expanded = .T. - Endif - - Locate For Upper(FileType) = 'SCX' - If Found() - loFormsNode = .Add('Results', 4, 'Root_SCX', 'Forms', ,) - loFormsNode.Expanded = .T. - Endif - - Locate For Upper(FileType) = 'PRG' - If Found() - loPrgNode = .Add('Results', 4, 'Root_PRG', 'Programs', ,) - loPrgNode.Expanded = .T. - Endif - - Locate For Upper(FileType) = 'FRX' - If Found() - loReportsNode = .Add('Results', 4, 'Root_FRX', 'Reports', ,) - loReportsNode.Expanded = .T. - Endif - - Locate For InList(Upper(FileType), 'MNX', 'MPR') - If Found() - loReportsNode = .Add('Results', 4, 'Root_MPX', 'Menus', ,) - loReportsNode.Expanded = .T. - Endif - - Locate For Upper(FileType) = 'DBF' - If Found() - loDbfNode = .Add('Results', 4, 'Root_DBF', 'Tables', ,) - loDbfNode.Expanded = .T. - Endif - - Locate For Upper(FileType) = 'PJX' - If Found() - loPJXNode = .Add('Results', 4, 'Root_PJX', 'Projects', ,) - loPJXNode.Expanded = .T. - Endif - - Locate For Not (Upper(FileType) $ ' SCX VCX PRG FRX DBF PJX MNX MPR ') - If Found() - loOtherNode = .Add('Results', 4, 'Root_OTHER', 'Other', ,) - loOtherNode.Expanded = .T. - Endif - - *-- Now populate each category node ------------------------------- - Scan - lcFilePath = Alltrim(Upper(FilePath)) - lcExt = Upper(Justext(FilePath)) - - Do Case - Case '_' + m.lcExt + '_' $ '_SCX_VCX_PRG_FRX_DBF_PJX_' - lcRoot = 'Root_' + m.lcExt - Case '_' + m.lcExt + '_' $ '_MNX_MPR_' - lcRoot = 'Root_MPX' - Otherwise - lcRoot = 'Root_OTHER' - Endcase - - loNode = .Add(m.lcRoot, 4, 'File_' + Alltrim(Str(Id)) + '_' + Alltrim(FilePath), Lower(Justfname(m.lcFilePath)), ,) - loNode.Parent.Bold = .T. - loNode.Expanded = .T. - - If m.lcExt = 'VCX' - loNode.Expanded = .F. - Thisform.AddClassesToTreeView(m.loNode, FilePath) - Endif - - Locate For Alltrim(Upper(FilePath)) # m.lcFilePath Rest && Jump To next FileName - - If Not Eof() - Skip - 1 - Endif - - Endscan - - Endwith - - loTreeView.Visible = .T. - * Thisform.LockWindow(.f.) - - m.loTreeView.Refresh() - - Select (m.lnSelect) - ENDPROC - - PROCEDURE Refresh - Thisform.nBrowserZoom = Thisform.containerRight.container2.containerWebControl.nZoom - - DoDefault() - ENDPROC - - PROCEDURE replace - *--- Make sure at least one record is selected before calling Replace() method - Local laSelectedCount[1] - - Select Count(id) from (thisform.cSearchResultsAlias); - Where process = .t. and replaced = .f.; - Into Array laSelectedCount - - If laSelectedCount = 0 - MessageBox('No eligible records are selected for replace.', 0, 'Notice:') - Return .f. - EndIf - - Thisform.DoReplace(.F., laSelectedCount) - - If Thisform.oSearchEngine.oSearchOptions.lShowErrorMessages - ThisForm.ShowReplaceErrors() - EndIf - - ENDPROC - - PROCEDURE replaceline - Local lcGFSECursor, lcReplaceLine, llResult, llReturn, lnId - - If Evaluate(Thisform.cSearchResultsAlias + '.replaced') or !ThisForm.ConfirmReplace() - Return .f. - Endif - - lnId = Evaluate(Thisform.cSearchResultsAlias + '.id') - lcGFSECursor = Thisform.oSearchEngine.cSearchResultsAlias - lcReplaceLine = Thisform.cReplaceLine - - Thisform.oSearchEngine.oSearchOptions.lPreviewReplace = .f. - - llResult = Thisform.oSearchEngine.ReplaceLine(lcGFSECursor, lnId, lcReplaceLine) - - If llResult = .t. - Thisform.UpdateFormAfteReplace(lnId) - llReturn = .t. - Else - Thisform.containerRight.Container1.containerReplaceText.cmdReplaceErrors.Refresh() && To make sure the icon is visible before we show dialog box - MessageBox('Error performing Replace. View Error list for more details.', 0, 'Error:') - llReturn = .f. - Endif - - If Thisform.oSearchEngine.oSearchOptions.lShowErrorMessages - ThisForm.ShowReplaceErrors() - EndIf - - Return llReturn - - - - - - - - - - - ENDPROC - - PROCEDURE Resize - Local lnIncrement, lnThisWidth - DoDefault() - - lnThisWidth = Min(Max(This.Width, 800), 1400) - lnIncrement = m.lnThisWidth - 1000 - - This.ButtonContainer.Left = m.lnIncrement + 422 + 48 - This.editSearch.Width = m.lnIncrement + 355 + 48 - This.comboSearchExpressionHistory.Width = m.lnIncrement + 372 + 48 - This.comboSearchScopeHistory.Width = m.lnIncrement + 349 + 48 - This.comboSearchExpressionHistoryDropDownArrow.Left = m.lnIncrement + 400 + 48 - - - ENDPROC - - PROCEDURE resizecodepage - Local lnBrowserAnchor, lnButtonContainerAnchor, loContainer - - loContainer = This.Containerright.Container2.containerWebControl - With m.loContainer - lnButtonContainerAnchor = .ButtonContainer.Anchor - lnBrowserAnchor = .oBrowser.Anchor - - .ButtonContainer.Anchor = 0 - .oBrowser.Anchor = 0 - - If m.loContainer.Width > 800 - .ButtonContainer.Top = 0 - If Thisform.nCodeWindowPosition = 1 - .ButtonContainer.Left = 28 + .cmdCompressCodeview.Left - Else - .ButtonContainer.Left = 28 + .cmdMaximizeCodeview.Left - Endif - .ButtonContainer.Width = .Width - .ButtonContainer.Left - .oBrowser.Top = 23 - Else - .ButtonContainer.Top = 23 - .ButtonContainer.Left = 0 - .ButtonContainer.Width = .Width - .oBrowser.Top = 46 - Endif - .oBrowser.Height = Max(.Height - .oBrowser.Top - 1, 60) - .oBrowser.Width = Max(.Width - 6, 60) - - .ButtonContainer.Anchor = m.lnButtonContainerAnchor - .oBrowser.Anchor = m.lnBrowserAnchor - - .ButtonContainer.Refresh() - - Endwith - - ENDPROC - - PROCEDURE restoredefaultdir - Cd (This.cInitialDefaultDir) - - ENDPROC - - PROCEDURE restorelastsearch - Local lcFolder, lnResults - - lcFolder = Thisform.GetLastSavedResultsFolder() - - If !Empty(lcFolder) - Thisform.RestorePreviousSearch(lcFolder) - Endif - - - - ENDPROC - - PROCEDURE restoreprevioussearch - Lparameters tcSavedFolder - - Local lLReturn, llToggleLockScreen - - Thisform.oSearchEngine.oProgressBar = Thisform.ProgressBar - Thisform.ProgressBar.Start(100, 'Loading search results...') - Thisform.ProgressBar.nValue = 25 - Thisform.Refresh() - - Thisform.ClearSearchResultsCursor() && Go ahead and blank out the cursor so the grid will be empty during the search - Thisform.ClearTreeView() - - llToggleLockScreen = Thisform.LockScreen = .F. - If m.llToggleLockScreen - Thisform.LockScreen = .T. - Endif - - lLReturn = This.LoadSavedResults(m.tcSavedFolder) - - If Not m.lLReturn - If m.llToggleLockScreen - Thisform.LockScreen = .F. - Endif - Return - Endif - - Thisform.Search(.T.) - - If m.llToggleLockScreen - Thisform.LockScreen = .F. - Endif - - Thisform.ProgressBar.Stop() - Thisform.Containerright.Container2.Visible = .T. - - ENDPROC - - PROCEDURE restoresavedsearch - Local lcFolder, lcRoot - - lcRoot = Home(7) + Thisform.cSavedSearchResultsFolder - - lcFolder = GetDir(lcRoot, 'Select previous search to restore:', 'Select previous search to restore:', 64) - - If !Empty(lcFolder) - Thisform.RestorePreviousSearch(lcFolder) - Endif - - - - ENDPROC - - PROCEDURE restoresearchengineoptions - ENDPROC - - PROCEDURE restoresearchfromhistory - Local lcFolder, lnResults - - lcFolder = "" - lnResults = Thisform.BuildSearchHistoryCursor() - - If lnResults = 0 - MessageBox("No search history results to restore. Ensure option is enabled.", 0, "GoFish") - Return - Else - Do Form GoFish_SearchHistory to lcFolder - Endif - - If !Empty(lcFolder) - Thisform.RestorePreviousSearch(lcFolder) - Endif - - - - ENDPROC - - PROCEDURE restoretreeviewonstartup - Local loNode, loTreeView - - loTreeView = Thisform.containerLeft.oTreeView - - If Thisform.nPreviousSessionTreeviewIndex > loTreeView.Nodes.Count - Return - Endif - - loNode = loTreeView.Nodes.Item[Thisform.nPreviousSessionTreeviewIndex] - loNode.EnsureVisible() - loTreeView.SelectedItem = loNode - loTreeView.NodeClick(loNode) - - ENDPROC - - PROCEDURE runjanitor - Wait 'GF Janitor' Window at 20, 30 Nowait - - This.RunJanitorForReplaceHistory() - - This.RunJanitorForSearchHistory() - - - ENDPROC - - PROCEDURE runjanitorforreplacehistory - #Define ccBACKUPFOLDER Addbs(Home(7) + 'GoFishBackups') - - Local laDirs[1], lcDetail, lcFile, lcHistory, ldCutOff, llFailed, lnFolderCount, lnI - lcHistory = Addbs(Home(7)) + 'GF_Replace_History.dbf' - lcDetail = Addbs(Home(7)) + 'GF_Replace_DetailV5.dbf' - - Try - Use (m.lcHistory) Exclusive Alias History In 0 - Use (m.lcDetail) Exclusive Alias Detail In 0 - llFailed = .F. - Catch - llFailed = .T. - Endtry - - If m.llFailed - Return - Endif - - ldCutOff = Date() - Thisform.nJanitorReplaceHistoryDays - - * -------------------------------------------------------------------------------- - Select History - Delete For Date_Time < m.ldCutOff - If _Tally > 0 - Pack - Endif - - * -------------------------------------------------------------------------------- - Select Detail - If Not Empty(Field('batch_id')) - Delete From Detail Where Not HistoryFK In (Select Id From History) - If _Tally > 0 - Pack - Endif - Endif - - * -------------------------------------------------------------------------------- - lnFolderCount = Adir(laDirs, ccBACKUPFOLDER + '*', 'D', 1) - - If Type('laDirs') $ 'UL' - Return '' - Endif - - Select History - - For lnI = 1 To m.lnFolderCount - lcFile = m.laDirs[m.lnI, 1] - If Left(m.lcFile, 1) # '.' - Locate For Id = Val(m.lcFile) - If Not Found() - RemoveFolder(ccBACKUPFOLDER + m.lcFile) - Endif - Endif - Endfor - - - - ENDPROC - - PROCEDURE runjanitorforsearchhistory - Local laDirs[1], lcFile, lcName, lcRoot, ldCutOff, lnFolderCount, lnI - - lcName = Thisform.cSavedSearchResultsFolder - lcRoot = Home(7) + m.lcName - - lnFolderCount = Adir(laDirs, Addbs(m.lcRoot) + '*', 'D', 1) - - If Type('laDirs') $ 'UL' - Return '' - Endif - - ldCutOff = Date() - Thisform.nJanitorSearchHistoryDays - - For lnI = 1 To m.lnFolderCount - lcFile = m.laDirs[m.lnI, 1] - If Left(m.lcFile, 1) # '.' And m.laDirs[m.lnI, 3] < m.ldCutOff - RemoveFolder(Addbs(m.lcRoot) + m.lcFile) - Endif - Endfor - ENDPROC - - PROCEDURE saveformsettings - Lparameters tcFolder - - lcFolder = Addbs(Evl(tcFolder, Home(7))) - - Local loMy As 'My' Of 'My.vcx' - - loMy = Newobject('My', 'My.vcx') - - loSettings = loMy.Settings - - With loSettings - *-- Form Size and Position ----------------------------- - .Add('FormTop', This.Top) - .Add('FormLeft', This.Left) - .Add('FormHeight', This.Height) - .Add('FormWidth', This.Width) - .Add('Splitter1Position', This.containerRight.splitter1.Top) - .Add('Splitter2Position', This.splitter2.Left) - .Add('Splitter3Position', This.containerRight.splitter3.Left) - .Add('CodeWindowPosition', This.nCodeWindowPosition) - - *-- Persist the docking information. - .Add('nDockable', This.Dockable) - If This.Dockable # 0 - .Add('lDocked', This.Docked) - - If This.Docked - Adockstate (laDock) - lnRow = Ascan (laDock, This.Caption, -1, -1, 1, 15) - lcDockWindow = '' - If lnRow > 0 - .Add('nDockPosition', laDock[lnRow, 3]) - If laDock[lnRow, 4] # _Screen.Caption And Not Empty (laDock[lnRow, 4]) - lcDockWindow = laDock[lnRow, 4] - Else - lnRowDocked = Ascan (laDock, This.Caption, -1, -1, 4, 15) - If lnRowDocked > 0 - lcDockWindow = laDock[lnRowDocked, 1] - Endif - Endif - Endif lnRow > 0 - - .Add('cDockWindow', lcDockWindow) - Endif - Endif - - *--- Save other custom form properties that to restore next session ---------------- - *.Add('lIncludeSubDirectoriesCurrent', Thisform.lIncludeSubDirectoriesCurrent) - *.Add('lIncludeSubDirectoriesBrowsed', Thisform.lIncludeSubDirectoriesBrowsed) - .Add('nBowserZoom', Thisform.containerRight.container2.containerWebControl.nZoom) - .Add('nSearchBoxFontSize', Thisform.nSearchBoxFontSize) - .Add('nGridFontSize', Thisform.nGridFontSize) - .Add('nTreeViewFontSize', Thisform.nTreeViewFontSize) - .Add('lApplyFilter', Thisform.lApplyFilter) - .Add('lClearApplyFilter', Thisform.lClearApplyFilter) - .Add('cFilter', Thisform.cFilter) - .Add('nReplaceRisk', Evl(Thisform.nReplaceRisk, 1)) - .Add('cReplaceUdfFilename', Thisform.cReplaceUDFFilename) - .Add('nReplaceMode', Evl(Thisform.nReplaceMode, 1)) - - *.Add('cSortFields', Thisform.cSortFields)&& This one has been deprecated. See cSortField. - .Add('cSortField', Thisform.cSortField) - .Add('cSortOrder', Thisform.cSortOrder) - .Add('cSortFieldSecondary', Thisform.cSortFieldSecondary) - .Add('cSortOrderSecondary', Thisform.cSortOrderSecondary) - .Add('cSortFieldTertiary', Thisform.cSortFieldTertiary) - .Add('cSortOrderTertiary', Thisform.cSortOrderTertiary) - - .Add('nDropDownDisplayCount', Thisform.nDropDownDisplayCount) - .Add('nDropDownMaxMRU', Thisform.nDropDownMaxMRU) - .Add('lWarnWholeWord', Thisform.lWarnWholeWord) - .Add('lSaveSearchResults', Thisform.lSaveSearchResults) - .Add('lCodeOnly', Thisform.lCodeOnly) - - .Add('nJanitorSearchHistoryDays', Thisform.nJanitorSearchHistoryDays) - .Add('nJanitorReplaceHistoryDays', Thisform.nJanitorReplaceHistoryDays) - .Add('lRunJanitorDaily', Thisform.lRunJanitorDaily) - .Add('dLastJanitorRunDate', Thisform.dLastJanitorRunDate) - .Add('nTabsToSpaces', Thisform.nTabsToSpaces) - .Add('lOnlyFirstMatchInStatement', Thisform.lOnlyFirstMatchInStatement) - - *-- Grid Settings ----------------------------- - For Each loControl In Thisform.oGrid.Columns - .Add(loControl.Name + '_width', loControl.Width) - .Add(loControl.Name + '_order', loControl.ColumnOrder) - .Add(loControl.Name + '_visible', loControl.Visible) - *.Add(loControl.Name + '_BoldHeader', loControl.Header1.FontBold) - EndFor - - loTreeView = Thisform.containerLeft.oTreeView - If Vartype(loTreeView.SelectedItem) = 'O' - lnNodeIndex = loTreeView.SelectedItem.Index - Else - lnNodeIndex = 1 - Endif - - .Add('nSelectedTreeviewNode', lnNodeIndex) - .Add('lRestorePreviousSearchResultsOnStartup', Thisform.lRestorePreviousSearchResultsOnStartup) - - .Save(lcFolder + This.cUISettingsFile) - - Endwith - - ENDPROC - - PROCEDURE savesearchinfo - Local lcDateTime, lcFileContents, lcFilename, lcFolder, lcScope, lcSearchExpression - Local lnHours, lnResults - - lnHours = Set("Hours") - Set Hours To 24 - lcDateTime = Ttoc(Datetime()) - Set Hours To &lnHours - - lcSearchExpression = Thisform.oSearchEngine.oSearchOptions.cSearchExpression - lcScope = Alltrim(Lower(Thisform.comboSearchScopeHistory.text)) - lnResults = Reccount(Thisform.oSearchEngine.cSearchResultsAlias) - - lcFileContents = lcDateTime + CRLF + ; - lcSearchExpression + CRLF + ; - lcScope + CRLF + ; - Transform(lnResults) - - lcFolder = Thisform.GetLastSavedResultsFolder() - lcFilename = lcFolder + Alltrim(Thisform.cSavedSearchResultsFolder) + ".txt" - StrToFile(lcFileContents, lcFilename) - ENDPROC - - PROCEDURE savesearchresults - Local llReturn, lnSelect - Local lcSearchEngineResultsAlias - Local lcTable, lcDBF - - lcSearchEngineResultsAlias = Thisform.oSearchEngine.cSearchResultsAlias - - *lcTable = JustStem(This.cSaveResultsDbc) - lcName = Thisform.cSavedSearchResultsFolder - - lnSelect = Select() - lcRoot = Home(7) + lcName - - *-- Create root folder of saved searches - Try - MkDir (lcRoot) - Catch - EndTry - - *-- Create a new subfolder for current search results - Try - lcFolder = Ttoc(Datetime(), 1) - lcNewDir = Addbs(lcRoot) + lcFolder - MkDir (lcNewDir) - Catch - EndTry - - lcCurrentDatabase = Set("Database") - *- Create the DBC - Try - lcDbc = Addbs(lcNewDir) + lcName - Create Database (lcDbc) - Catch - Endtry - - *-- Create the table to save the search results - Try - lcDBF = Addbs(lcNewDir) + lcName - Select (lcSearchEngineResultsAlias) - Copy To (lcDBF) Database (lcName) - Catch - Endtry - - Close Database - Set Database To (lcCurrentDatabase) - - Thisform.SaveFormSettings(lcNewDir) - ThisForm.oSearchEngine.SaveOptions(Addbs(lcNewDir) + This.cSearchOptionsXMLFile) - - *-- Copy the Filter form settings XML file to our new folder - Try - lcFilterSettingsFilename = "GF_Filter_Settings.xml" - lcSourceFile = Home(7) + lcFilterSettingsFilename - lcTargetFile = Addbs(lcNewDir) + lcFilterSettingsFilename - Copy File (lcSourceFile) to (lcTargetFile) - Catch - Endtry - - *-- Save a textfile with information about the saved search - Thisform.SaveSearchInfo() - - Select(lnSelect) - - - - - - - ENDPROC - - PROCEDURE search - Lparameters tlDoNotSearch - - Local lcFilter, lcFirstChar, lcLastChar, lcSearchExpression, lnResponse - - lcSearchExpression = Thisform.oSearchEngine.oSearchOptions.cSearchExpression - lcFirstChar = Left(lcSearchExpression, 1) - lcLastChar = Right(lcSearchExpression, 1) - - *====== Deal with any leading or trailing spaces in the search expression ====================== - If Empty(tlDoNotSearch) and (lcFirstChar = Chr(32) Or lcLastChar = Chr(32)) - lnResponse = Messagebox('Notice: The search expression contains leading or trailing spaces.' + ; - Chr(13) + Chr(13) + ; - 'Do you want to remove these spaces from the search expression?', 3 + 32, 'GoFish notice:') && Yes, No, Cancel dialog box - If lnResponse = 2 && Cancel - Thisform.editSearch.SetFocus() - Return - Endif - - If lnResponse = 6 && Yes - Thisform.oSearchEngine.oSearchOptions.cSearchExpression = Alltrim(lcSearchExpression) - Endif - Endif - - lcFilter = Thisform.cFilter - - Set Filter To &lcFilter In (Thisform.cSearchResultsAlias) && Need to remove any filter that the Treeview has applied - - lcBell = Set("Bell") - Set Bell Off - - Thisform.DoSearch(tlDoNotSearch) - - Set Bell &lcBell - - If Thisform.lSearching = .T. - Thisform.lSearching = .F. - Endif - - Thisform.editSearch.SetFocus() - - If Thisform.oSearchEngine.oSearchOptions.lShowErrorMessages - ThisForm.ShowSearchErrors() - EndIf - - ENDPROC - - PROCEDURE setcaption - Lparameters toControl, tcCaption - - toControl.Caption = tcCaption - - toControl.Refresh() - ENDPROC - - PROCEDURE seterror - ENDPROC - - PROCEDURE setpath - Lparameters tcDir - - MessageBox('Form.SetPath() shoudl no longer be needed.') - Return - - - - Local lcPath, llReturn - - lcPath = Alltrim(Thisform.oSearchEngine.oSearchOptions.cPath) && Store it. Might be invalid, and if so, we'll restore it to save them - - llReturn = Thisform.oSearchEngine.SetPath(tcDir) && Will also rebuild list of Projects that are present in this path - - If !llReturn - MessageBox('Invalid path. Please correct',32, 'GoFish Error:') - Thisform.oSearchEngine.oSearchOptions.cPath = lcPath - Endif - - Thisform.Refresh() - - Return llReturn - - - ENDPROC - - PROCEDURE setproject - ENDPROC - - PROCEDURE setscope - Lparameters tcScope - - tcScope = Alltrim(tcScope) - tcScope = Rtrim(Lower(tcScope), '\') - - If (!Directory(tcScope, 1) and !('.pjx' $ Lower(tcScope))) or Empty(tcScope) - MessageBox('Invalid scope setting', 0, 'Error:') - Return - Endif - - Thisform.comboSearchScopeHistory.SaveSearchScope(tcScope) - Thisform.comboSearchScopeHistory.Value = tcScope - Thisform.comboSearchScopeHistory.Valid() - - Thisform.Refresh() - ENDPROC - - PROCEDURE setsearchexpression - Lparameters tcSearchExpression - - Thisform.oSearchEngine.oSearchOptions.cSearchExpression = tcSearchExpression - - Thisform.Refresh() - ENDPROC - - PROCEDURE showadvancedform - - If Thisform.lSearchFormVisible = .f. - Thisform.lSearchFormVisible = .t. - Do Form 'GoFish_Advanced' with Thisform - Else - ThisForm.ShowForm('GF_Advanced') - Endif - - - ENDPROC - - PROCEDURE showcodeforcurrentrow - Lparameters tlForce - - *-- This method will only generate the html if the ROW has changed, not the colum. This prevents - *-- the html from being regenerated if the user tabs to a new column in the grid, without changing rows. - - Local lnId - - If Eof(Thisform.cSearchResultsAlias) or Thisform.lSearching = .t. - Return - Endif - - lnId = Evaluate(Thisform.cSearchResultsAlias + '.id') - - If (lnId <> Thisform.nCurrentId and lnId > 0) or tlForce - Thisform.LoadReplaceLine() - Thisform.Refresh() - Thisform.ShowHtmlCodeView() - EndIf - - Thisform.nCurrentId = lnId - ENDPROC - - PROCEDURE showerrors - Lparameters loCollection - - Local lcErrorText, lcTempFile, loEditorWin, loObject - *!* ******************** Removed 11/09/2015 ***************** - *!* Do Form 'GF_Collection_Explorer' - - lcErrorText = '' - For Each m.loObject In m.loCollection FoxObject - lcErrorText = m.lcErrorText + m.loObject + CR - EndFor - - If Empty(lcErrorText) - Return - EndIf - - lcTempFile = Addbs(Sys(2023)) + 'GF_Search_Errors' + Sys(2015) + '.txt' - Strtofile(m.lcErrorText, m.lcTempFile) - Modify File (m.lcTempFile) Nowait - - If IsThorThere() - loEditorWin = Execscript(_Screen.cThorDispatcher, 'Class= editorwin from pemeditor') - m.loEditorWin.ResizeWindow(1200, 600) - m.loEditorWin.SetTitle(m.lcTempFile) - Endif - - ENDPROC - - PROCEDURE showfilterform - Lparameters lcFormName - - Local lcCurrentFilter, lcCursor, lcFilter - - lcCursor = thisform.cSearchResultsAlias - lcCurrentFilter = Filter(lcCursor) - Thisform.nCurrentId = 0 - - Set Filter To In (lcCursor) && Clear current filter so Filter form and process all records - Goto top In (lcCursor) - - Do Form (lcFormName) With This To lcFilter - - If IsNull(lcFilter) - Set Filter To &lcCurrentFilter in (lcCursor) - Goto top In (lcCursor) - Return - Else - This.LoadFilterSettings() - Thisform.cFilter = lcFilter - Thisform.lApplyFilter = .t. - Thisform.ApplyFilter() - EndIf - - ThisForm.UpdateTreeView() - - - - ENDPROC - - PROCEDURE showform - Lparameters tcFormName - - Local llReturn, lnI - - If Empty(tcFormName) - Return - Endif - llReturn = .f. - - For lnI = 1 To _Screen.FormCount - If Upper(_Screen.Forms(lnI).Name) = Upper(tcFormName) - - With _Screen.Forms (lnI) - If .WindowState = 1 - .WindowState = 0 - Endif - .Show() - EndWith - llReturn = .t. - Exit - Endif - EndFor - - Return llReturn - ENDPROC - - PROCEDURE showgofishhelppage - Shell('http://vfpx.codeplex.com/wikipage?title=GoFish%20Replace%20Help') - - ENDPROC - - PROCEDURE showgridcolumn - Lparameters tlShow, toColumn, tnPosition, tnWidth - - Local lnColumnCount - - lnColumnCount = toColumn.Parent.ColumnCount - toColumn.Width = tnWidth - - If tlShow = .t. - toColumn.Visible = .t. - Do While toColumn.ColumnOrder <> tnPosition - toColumn.ColumnOrder = toColumn.ColumnOrder + Iif(toColumn.ColumnOrder < tnPosition, 1, -1) - EndDo - Else - Do While toColumn.ColumnOrder < lnColumnCount - toColumn.ColumnOrder = toColumn.ColumnOrder + 1 - EndDo - toColumn.Visible = .f. - Endif - ENDPROC - - PROCEDURE showhelpform - Do Form 'GoFish_About' - ENDPROC - - PROCEDURE showhtml - Lparameters tcHtml - - Local loWebContainer - - loWebContainer = Thisform.containerRight.container2.ContainerWebControl - - loWebContainer.ShowHtml(tcHtml) - ENDPROC - - PROCEDURE showhtmlcodeview - Local lcCode, lcCss, lcCssFile, lcCursor, lcExt, lcHTML, lcHtmlFile, lcJavaScript, lcJavaScriptFile - Local lcMatchLine, lcProcCodeFilter, lcReplaceLine, lnMatchStart, loSearchEngine, loWebControl - - lcCursor = Thisform.cSearchResultsAlias - loSearchEngine = Thisform.oSearchEngine - loWebControl = Thisform.Containerright.Container2.containerWebControl - - *-- These file types cannot be rendered ------------------ - lcExt = Alltrim(Upper(&lcCursor..FileType)) - If (' ' + m.lcExt + ' ') $ This.cDoNotRenderExtensions - m.loWebControl.ShowHTML('Cannot render this file type.') - Return - Endif - - lcCode = Substr(&lcCursor..Code, &lcCursor..ProcStart + 1) - - lnMatchStart = &lcCursor..MatchStart - &lcCursor..ProcStart - lcMatchLine = &lcCursor..MatchLine - lcReplaceLine = &lcCursor..replaceline - - lcCssFile = _Screen._GoFish.cAppPath + 'CSS\GoFish.css' - lcJavaScriptFile = _Screen._GoFish.cAppPath + 'HTML\GoFish.js' - - lcCss = Iif(File(m.lcCssFile), Filetostr(m.lcCssFile), '') - lcJavaScript = Iif(File(m.lcJavaScriptFile), Filetostr(m.lcJavaScriptFile), '') - - If Len(m.lcCode) < Thisform.nMaxSizeToRenderHtml - lcHTML = m.loSearchEngine.GenerateHTMLCode(m.lcCode, m.lcMatchLine, m.lnMatchStart, m.lcCss, m.lcJavaScript, m.lcReplaceLine, &lcCursor..replaced, Thisform.nTabsToSpaces, ; - Thisform.oSearchEngine.oSearchOptions.cSearchExpression, ; - Alltrim(Iif(This.lApplyFilter, This.oFilter.Statement_Filter, '')), ; - Alltrim(Iif(This.lApplyFilter, This.oFilter.ProcCode_Filter, ''))) - Else - lcHTML = '
' + m.lcCode + '
' - Endif - - If This.lGoogleChromeFrame = .T. && Slower due to file activity, but allows selecting of text from matched row in html view. - lcHtmlFile = Home(7) + 'gf_html_code.html' - Delete File (m.lcHtmlFile) - Strtofile(m.lcHTML, m.lcHtmlFile) - loWebControl.lGoogleChromeFrame = .T. - m.loWebControl.ShowHtmlFile(m.lcHtmlFile) - Else - m.loWebControl.ShowHTML(m.lcHTML) - Endif - - - - - ENDPROC - - PROCEDURE showoptionsform - Do Form GoFish_Options with Thisform && Calls a Modal form... - - This.LockScreen = .T. - - lnRecno = Recno(This.cSearchResultsAlias) - - Thisform.SaveFormSettings() - Thisform.LoadFormSettings(.t.) - - If Thisform.nReplaceRisk = 0 - Thisform.lReplaceMode = .f. && Will trigger the _assign method - Endif - - *-- Unmark any marked records where the replacerisk is higher than the new setting - Update (thisform.cSearchResultsAlias) Set process = .f. where replacerisk > thisform.nReplaceRisk - - Select (this.cSearchResultsAlias) - - Try - Goto (lnRecno) - Catch - EndTry - - Thisform.Refresh() - - This.LockScreen = .F. - ENDPROC - - PROCEDURE showreplaceerrors - Local loReplaceErrors - loReplaceErrors = Thisform.oSearchEngine.oReplaceErrors - If m.loReplaceErrors.Count > 0 - Thisform.ShowErrors(m.loReplaceErrors) - Endif - - ENDPROC - - PROCEDURE showreplacehistory - Local lcDetail, lcDetailDBC, lcMaster, lnSelect - - lnSelect = Select() - - lcMaster = Addbs(Home(7)) + 'GF_Replace_History.dbf' - lcDetail = Addbs(Home(7)) + 'GF_Replace_DetailV5.dbf' - lcDetailDBC = Addbs(Home(7)) + 'GF_Replace_Detail.dbc' - - If !File(lcMaster) or !File(lcDetail) or !File(lcDetailDBC) - MessageBox('One of your Replace History files is missing. Cannot browse Replace History.', 16, 'File(s) missing') - Return .f. - Endif - - Select Master.Id as Batch__Id, ; - Master.Date_time, ; - Master.scope, ; - Master.searchstr as Search_String, ; - Master.replacestr as Replace_String, ; - Detail.* ; - From (lcMaster) Master ; - Join (lcDetail) Detail on Master.id = Detail.HistoryFK ; - Order By Master.ID desc, Detail.PK ; - Into Cursor GoFishReplaceHistory - - Browse NoWait Normal Title "GoFish Replace History" - - Select (lnSelect) - ENDPROC - - PROCEDURE showreplacepanel - loReplacePanel = Thisform.containerRight.container1.containerReplaceText - - If loReplacePanel.visible = .t. - Return - Endif - - lnHeightChange = This.parent.containerReplaceText.Height * -1 - - - ENDPROC - - PROCEDURE showsearcherrors - Local loSearchErrors - loSearchErrors = Thisform.oSearchEngine.oSearchErrors - If m.loSearchErrors.Count > 0 - Thisform.ShowErrors(m.loSearchErrors) - Endif - - ENDPROC - - PROCEDURE sortcolumn - Local laCurrentEvent[1], lcField, lcNewSortOrder, lcSortField, lcSortOrder, loCalledBy, loColumn - Local loHeader - - AEvents(laCurrentEvent,0) - loCalledBy = laCurrentEvent[1] && should be a Header object - loHeader = Evl(loHeader, loCalledBy) - - lcField = Upper(GetWordNum(loHeader.Parent.ControlSource, 2, '.')) - lcNewSortOrder= '' - - If Upper(lcField) = 'CODE' - MessageBox('Cannot sort by this column.', 16, 'Notice:') - Return .f. - Endif - - *-- Read current Sort field and Sort Order ------------------ - lcSortField = Thisform.cSortField - lcSortOrder = Upper(Thisform.cSortOrder) - - If 'TIMESTAMP' $ Upper(loHeader.Parent.ControlSource) - lcNewSortOrder= 'DESC' - EndIf - - *-- If same column, reverse Asc/Desc, bump 2 to 3, and 1 to 2, so new column can go in 1 - If lcField = lcSortField or Empty(lcSortField) - lcNewSortOrder = Iif(('DESC' $ lcSortOrder) or Empty(lcSortOrder), 'ASC', 'DESC') - Else - Thisform.cSortFieldTertiary = Thisform.cSortFieldSecondary - Thisform.cSortOrderTertiary = Thisform.cSortOrderSecondary - Thisform.cSortFieldSecondary = Thisform.cSortField - Thisform.cSortOrderSecondary = Thisform.cSortOrder - EndIf - - Thisform.cSortField = lcField - Thisform.cSortOrder = lcNewSortOrder - - Thisform.FillSearchResultsCursor() - - If thisform.lReplaceMode = .t. - Thisform.DoReplace(.t.) && .t. means do a "Preview" Replace - Endif - - Thisform.oGrid.Setfocus() - - Keyboard '{UPARROW}' && Required to get the grid to update and sync with newly built cursor. - ENDPROC - - PROCEDURE sortcolumnsecondary - Local laCurrentEvent[1], lcField, lcNewSortOrder, lcSortField, lcSortOrder, loCalledBy, loHeader - - AEvents(laCurrentEvent,0) - loCalledBy = laCurrentEvent[1] && should be a Header object - loHeader = Evl(loHeader, loCalledBy) - - lcField = Upper(GetWordNum(loHeader.Parent.ControlSource, 2, '.')) - lcNewSortOrder = '' - - If Upper(lcField) = 'CODE' - MessageBox('Cannot sort by this column.', 16, 'Notice:') - Return .f. - Endif - - *-- Read current Secondary Sort Field and Sort Order ------------------ - lcSortField = Thisform.cSortFieldSecondary - lcSortOrder = Upper(Thisform.cSortOrderSecondary) - - If 'TIMESTAMP' $ Upper(loHeader.Parent.ControlSource) - lcNewSortOrder = 'DESC' - Endif - - *-- If same column, need to reverse Asc/Desc, otherwise, bump 2nd to 3rd - If lcField = lcSortField - lcNewSortOrder = Iif(('DESC' $ lcSortOrder) or Empty(lcSortOrder), 'ASC', 'DESC') - Else - Thisform.cSortFieldTertiary = Thisform.cSortFieldSecondary - Thisform.cSortOrderTertiary = Thisform.cSortOrderSecondary - Endif - - Thisform.cSortFieldSecondary = lcField - Thisform.cSortOrderSecondary = lcNewSortOrder - - Thisform.FillSearchResultsCursor() - - If thisform.lReplaceMode = .t. - Thisform.DoReplace(.t.) && .t. means do a "Preview" Replace - Endif - - Thisform.oGrid.Setfocus() - - Keyboard '{UPARROW}' && Required to get the grid to update and sync with newly built cursor. - ENDPROC - - PROCEDURE updateformaftereplace - Lparameters tnRecordId - - Thisform.FillSearchResultsCursor() - - Select(Thisform.cSearchResultsAlias) - Goto Top - - Locate For Id = tnRecordId - - Try - Thisform.oGrid.SetFocus() - Catch - Endtry - - Thisform.Refresh() - - Thisform.ShowCodeForCurrentRow(.T.) - - - ENDPROC - - PROCEDURE updateformaftersearch - Local loSearchEngine - - Thisform.lSearching = .f. - - loSearchEngine = Thisform.oSearchEngine - - If loSearchEngine.lEscPress - Messagebox('Processing stopped due to ESCAPE press.', 64, 'Notice:') - EndIf - - If loSearchEngine.lResultsLimitReached - Messagebox('Processing stopped due to maximum results limit.' + Chr(13) + Chr(13) +; - 'Adjust value in Options if desired.', 64, 'Notice:') - EndIf - - If loSearchEngine.nMatchLines > 0 - Thisform.ApplyFilter() - ThisForm.FillSearchResultsCursor() && Pulls records from the search engine's results cursor. - Thisform.ShowCodeForCurrentRow() - Else - Thisform.editSearch.SetFocus() - EndIf - - This.FormatProcessColumn() - - ThisForm.UpdateTreeView() - - - ENDPROC - - PROCEDURE updatesearchenginecursor - *-- This method copies over certain fields from the local cursor to the GFSE cursor - Local lcSearchEngineCursor, lcSearchResultsAlias, lnSelect - - lcSearchResultsAlias = Thisform.cSearchResultsAlias - lcSearchEngineCursor = Thisform.oSearchEngine.cSearchResultsAlias - - lnSelect = Select() - Select (lcSearchResultsAlias) - - MessageBox("start 1") - Scan - Update (lcSearchEngineCursor) ; - Set Process = &lcSearchResultsAlias..Process ; - Where id = &lcSearchResultsAlias..id - Endscan - MessageBox("end 1") - - - - MessageBox("start 2") - - Scan - lnId = id - llProcess = process - replace process with llProcess for id = lnId in (lcSearchEngineCursor) - Endscan - - - - MessageBox("end 2") - Select (lnSelect) - ENDPROC - - PROCEDURE updatesearchscopevariables - With Thisform - .cActiveProject = Thisform.oSearchEngine.GetActiveProject() - .cCurrentDir = Thisform.oSearchEngine.GetCurrentDirectory() - .oSearchEngine.AddProject(.cActiveProject) - - If Empty(.oSearchEngine.oSearchOptions.cPath) - .oSearchEngine.oSearchOptions.cPath = .cCurrentDir - Endif - - Endwith - - - - ENDPROC - - PROCEDURE updatetreeview - Goto Top In (Thisform.cSearchResultsAlias) - - Thisform.Refresh() - - If !Eof(Thisform.cSearchResultsAlias)&& Thisform.oSearchEngine.nMatchLines > 0 - Thisform.PopulateTreeview() - Thisform.oGrid.SetFocus() - Else - lcResults = Thisform.containerRight.container1.lblResults.Caption - Thisform.PopulateTreeview(lcResults, 128) - Thisform.ShowHtml('

   ' + lcResults + '

') - Endif - - - ENDPROC - - PROCEDURE validateinputs - Local loGrid, loSearchEngine, loSearchOptions, loTimeStampToControl, lcPath - - loSearchOptions = Thisform.oSearchEngine.oSearchOptions - lcScope = Thisform.GetCurrentScope() - - *-- Validate Directory (for Curr Dir or Browsed Dir) - If InList(loSearchOptions.nSearchScope, 3, 4) - - lcPath = Addbs(lcScope) - If !Directory(lcPath, 1) - MessageBox('Invalid Directory [' + lcPath + ']. Please correct.', 0, 'GoFish Error:') - Return .f. - Endif - Endif - - *-- Validate Project file can be found (for Active Project and Browsed Project) - If InList(loSearchOptions.nSearchScope, 1, 2) - If !File(lcScope) - MessageBox('Cannot find project file [' + lcScope + ']. Please correct.', 0, 'GoFish Error:') - Return .f. - Endif - Endif - - *-- Must Specify a search expression, unless you are searching by TimeStamps - If Empty(loSearchOptions.cSearchExpression) and !loSearchOptions.lTimeStamp - Messagebox('Please specify a search string.', 16, 'GoFish') - Return .f. - Endif - - *-- Make sure at least one date is supplied if timestamp box is checked. - If loSearchOptions.lTimeStamp = .t. and Empty(loSearchOptions.dTimeStampFrom) and Empty(loSearchOptions.dTimeStampTo) - MessageBox('At least one TimeStamp date must be entered, or else clear checkbox.', 16, 'GoFish') - EndIf - - If !Thisform.ClearSearchResultsCursor() - Return .f. - EndIf - - - ENDPROC - - PROCEDURE validatereplaceexpression - #DEFINE CR Chr(13) - Local laHighRiskCount[1], laSelectedCount[1], lcExample, lcReplaceExpression, lnResponse - - lcReplaceExpression = Thisform.oSearchEngine.oSearchOptions.cReplaceExpression - lcUDFCode = Thisform.oSearchEngine.cReplaceUDFCode - lcExample = Strtran(lcReplaceExpression, ' ', '{SPACE}') - - - If Thisform.nReplaceMode = 3 && UDF Replace mode - If Empty(lcUDFCode) - MessageBox('UDF Replace code is empty.',16, 'WARNING:') - Return .f. - Else - Return .t. - Endif - Endif - - If Len(lcReplaceExpression) = 0 - lnResponse = MessageBox('The Replace expression is an empty string.' + CR + CR + ; - 'Are you sure you want to proceed with an empty Replace string?', 3, 'WARNING:') - If lnResponse <> 6 - Thisform.oSearchEngine.oSearchOptions.lAllowBlankReplace = .f. - Return .f. - EndIf - - Thisform.oSearchEngine.oSearchOptions.lAllowBlankReplace = .t. - EndIf - - If Empty(lcReplaceExpression) and Len(lcReplaceExpression) > 0 - lnResponse = MessageBox('The Replace expression contains only spaces.' + CR + CR + ; - 'Are you sure you want to proceed with this Replace string?' + CR + CR + ; - lcExample, 3, 'WARNING:') - If lnResponse <> 6 - Thisform.oSearchEngine.oSearchOptions.lAllowBlankReplace = .f. - Return .f. - EndIf - - Thisform.oSearchEngine.oSearchOptions.lAllowBlankReplace = .t. - EndIf - - If Left(lcReplaceExpression, 1) = ' ' and Right(lcReplaceExpression, 1) <> ' ' - lnResponse = MessageBox('The Replace expression contains 1 or more leading spaces.' + CR + CR + ; - 'Are you sure you want to proceed with this Replace string?' + CR + CR + ; - lcExample, 3, 'WARNING:') - If lnResponse <> 6 - Return .f. - EndIf - EndIf - - If Left(lcReplaceExpression, 1) <> ' ' and Right(lcReplaceExpression, 1) = ' ' - lnResponse = MessageBox('The Replace expression contains 1 or more trailing spaces.' + CR + CR + ; - 'Are you sure you want to proceed with this Replace string?' + CR + CR + ; - lcExample, 3, 'WARNING:') - If lnResponse <> 6 - Return .f. - EndIf - EndIf - - If Left(lcReplaceExpression, 1) = ' ' and Right(lcReplaceExpression, 1) = ' ' and !Empty(lcReplaceExpression) - lnResponse = MessageBox('The Replace expression contains leading and trailing SPACES.' + CR + CR + ; - 'Are you sure you want to proceed with this Replace string?' + CR + CR + ; - lcExample, 3, 'WARNING:') - If lnResponse <> 6 - Return .f. - EndIf - EndIf - - *-- Notify user if they have selected any high-risk rows to replace - Select Count(id) from (thisform.cSearchResultsAlias); - Where process = .t. and ReplaceRisk > 1; - Into Array laHighRiskCount - - If laHighRiskCount > 0 - - lnResponse = MessageBox('====================================================' + CR +; - ' W A R N I N G ' + CR + ; - '====================================================' + CR + CR +; - 'You have one or more high risk Match Types selected which could damage' + CR + ; - 'your files and prevent them from opening if your replace expression ' + CR + ; - 'results in invalid code.' + CR + CR + ; - 'Are you sure you want to proceed?', 3, 'GoFish Replace') - If lnResponse <> 6 - Return .f. - EndIf - EndIf - - - - - ENDPROC - - PROCEDURE viewreport - Local laFields[1], lcAscDesc, lcCursor, lcField, lcFieldList, lcFilename, lcFilter, lcHeader, lcHtml - Local lcOrderBy, lcResultsGridHtmlCursor, lcTable, lnX, loColumn, loShell - - lnSelect = Select() - lcCursor = This.cSearchResultsAlias - - Dimension laFields[1, 2] - lcFieldList = '' - lnX = 1 - - *-- Set Header captions from Field name ----------------- - For Each loColumn In Thisform.oGrid.Columns - If loColumn.Visible = .T. - If lnX > 1 - Dimension laFields[lnX, 2] - Endif - laFields[lnX, 1] = Transform(loColumn.ColumnOrder, '999') - laFields[lnX, 2] = loColumn.ControlSource - lnX = lnX + 1 - Endif - Endfor - - =Asort(laFields) - - For lnX = 1 To Alen(laFields) / 2 - If !Empty(lcFieldList) - lcFieldList = lcFieldList + ',' - Endif - lcFieldList = lcFieldList + laFields[lnX, 2] - Endfor - - lcFilter = Filter(lcCursor) - - If !Empty(lcFilter) - lcFilter = 'Where ' + lcFilter - Endif - - If !Empty(Thisform.cSortFields) - lcField = Getwordnum(Thisform.cSortFields, 1, ',') - lcAscDesc = Getwordnum(Thisform.cSortOrder, 1, ',') - lcAscDesc = Iif('DESC' $ lcAscDesc, 'DESCENDING', '') - - lcOrderBy = 'Order By ' + lcField + ' ' + lcAscDesc - Else - lcOrderBy = '' - Endif - - lcResultsGridHtmlCursor = 'ResultsGridHtml' - Select &lcFieldList From &lcCursor &lcFilter &lcOrderBy Into Cursor &lcResultsGridHtmlCursor Readwrite - - If 'matchtype' $ Lower(lcFieldList) - Replace matchtype With Strtran(matchtype, '<', '') All - Replace matchtype With Strtran(matchtype, '>', '') All - Endif - - Goto Top - - Text To lcHeader Textmerge Noshow - - - - - - - - - - - Scope :    <>      <>      <>
- Search:    <>
- <>
-
- - Endtext - - lcTable = Thisform.oWebControl.CursorToHtml(lcResultsGridHtmlCursor, 'Results') - - lcHtml = lcHeader + lcTable + '' - - lcFilename = Addbs(Sys(2023)) + 'GF_ResultsGrid.html' - - Strtofile(lcHtml, lcFilename) - - loShell = Newobject('_ShellExecute', Home(1) + 'Ffc\' + '_environ.vcx') - loShell.ShellExecute(lcFilename) - loShell.Release() - - Select (lnSelect) - - ENDPROC - - PROCEDURE ButtonContainer.chkLimitToProjectFolder.Refresh - This.Enabled = !Thisform.lSearching &&and !Thisform.lReplaceMode - - This.Visible = ('.PJX' $ Upper(Thisform.comboSearchScopeHistory.Text)) - - ENDPROC - - PROCEDURE ButtonContainer.chkMatchWholeWord.Click - Thisform.oSearchEngine.ClearReplaceSettings() - ENDPROC - - PROCEDURE ButtonContainer.chkMatchWholeWord.Refresh - This.Enabled = !Thisform.lSearching &&and !Thisform.lReplaceMode - ENDPROC - - PROCEDURE ButtonContainer.chkSubdirectories.Refresh - This.Enabled = !Thisform.lSearching && and !Thisform.lReplaceMode - - This.Visible = !('.PJX' $ Upper(Thisform.comboSearchScopeHistory.text)) - - ENDPROC - - PROCEDURE ButtonContainer.cmdAdvanced.Click - Thisform.ShowAdvancedForm() - Thisform.Refresh() - - - - - ENDPROC - - PROCEDURE ButtonContainer.cmdAdvanced.Refresh - This.Enabled = !Thisform.lSearching && and !Thisform.lReplaceMode - - ENDPROC - - PROCEDURE ButtonContainer.cmdAdvanced.RightClick - Local lcChoice, lnBar - lcChoice = '' - lnBar = 0 - CreateContextMenu('AdvancedContextMenu') - - lnBar = m.lnBar + 1 - Define Bar (m.lnBar) Of AdvancedContextMenu Prompt '\> lines - <> file(s) - in <> seconds - EndText - Else - Thisform.cSearchResultsMessage = '' - Endif - - This.Caption = Thisform.cSearchResultsMessage - - - ENDPROC - - PROCEDURE ButtonContainer.Refresh - This.Visible = !Thisform.lSearching && and !Thisform.lReplaceMode - ENDPROC - - PROCEDURE comboSearchExpressionHistory.Refresh - DoDefault() - - This.FontSize = Thisform.nSearchBoxFontSize - ENDPROC - - PROCEDURE comboSearchExpressionHistoryDropDownArrow.GotFocus - Local loCombo - - *-- Store current value of editbox. I the user presses ESCAPE in the actual combobox, - *-- the oringal value can be recovered from here. - This.Tag = This.Parent.editSearch.Value - - loCombo = This.Parent.comboSearchExpressionHistory - - With loCombo - .ListIndex = 1 - .Visible = .T. - .SetFocus() - Endwith - - This.ZOrder(1) - - *-- Do this to force the combobox to drop down... - Mouse Click At This.Top + Int(This.height / 2), This.Left + Int(This.width/2) PIXELS Window (Thisform.Name) - - *Keyboard '{ALT+DNARROW}' && To expand the actual dropdown listbox that holds all the values - ENDPROC - - PROCEDURE comboSearchExpressionHistoryDropDownArrow.Init - this.Top = this.Parent.editSearch.top - ENDPROC - - PROCEDURE comboSearchExpressionHistoryDropDownArrow.Refresh - This.Enabled = !Thisform.lSearching && and !Thisform.lReplaceMode - ENDPROC - - PROCEDURE comboSearchScopeHistory.Refresh - This.Enabled = !Thisform.lSearching && and !Thisform.lReplaceMode - - DoDefault() - - this.FontSize = Thisform.nSearchBoxFontSize - ENDPROC - - PROCEDURE containerLeft.cntVersion.cmdVFPX.Click - Shell('http://vfpx.codeplex.com/') - ENDPROC - - PROCEDURE containerLeft.cntVersion.Gf_versionlabel1.Refresh - Local lcAppName, lcVersion - - lcAppName = JustStem(_Screen._GoFish.cAppName) - lcVersion = _Screen._GoFish.cVersion - - Try - This.Caption = 'V ' + lcVersion + Iif('BETA' $ Upper(lcAppName), ' Beta', '') - Catch - This.Caption = 'GoFish' - Finally - Endtry - - This.Caption = This.Caption + ' ... ' + Dtoc(_screen._GoFish.dBuildDate) - - ENDPROC - - PROCEDURE containerLeft.cntVersion.Refresh - * This.Visible = !Thisform.lSearching && and !Thisform.lReplaceMode - ENDPROC - - PROCEDURE containerLeft.oTreeView.Click - *** ActiveX Control Event *** - - ENDPROC - - PROCEDURE containerLeft.oTreeView.DblClick - Local loPBT as 'GF_PEME_BaseTools' - Local lcClass, lcExt, lcFile, lcKey, llClass, lnCount, loNode - - lcFile = '' - lcExt = '' - lcClass = '' - llClass = .f. - - loNode = This.selectedItem - lcKey = loNode.Key - lnCount = Atc('_', lcKey, 2) - lcFile = Substr(lcKey, lnCount + 1) - lcExt = JustExt(lcFile) - - Do Case - Case loNode.index = 1 or loNode.parent.index = 1 && One of the Main Root Nodes - lcFile = '' - - Case not Eof(Thisform.cSearchResultsAlias) - Thisform.oSearchEngine.EditFromCurrentRow(thisform.cSearchResultsAlias) - - Case 'O' = Vartype(loNode.Tag) - lcFile = loNode.Tag.Filename - lcClass = loNode.Tag.Class - - Case Empty(lcExt) or lnCount = 0 - lcClass = loNode.Text - lcKey = This.selectedItem.parent.Key - lnCount = Atc('_', lcKey, 2) - lcFile = Substr(lcKey, lnCount + 1) - If File(lcFile) and !Empty(lcClass) - llClass = .t. - Endif - - EndCase - - If Empty(lcFile) or !File(lcFile) - Return - Endif - - loPBT = CreateObject('GF_PEME_BaseTools') - loPBT.EditSourceX(lcFile, lcClass, 0, 0, '') - - - - ENDPROC - - PROCEDURE containerLeft.oTreeView.Init - thisform.oTree = this - ENDPROC - - PROCEDURE containerLeft.oTreeView.NodeClick - Lparameters node - - ThisForm.ClickTreeviewNode(node) - - Return - - * ================================================================================ - * ================================================================================ - - Lparameters node - - Local lcAlias, lcClass, lcFileType, lcFilename, lcFilter, lcFullFileName, lcFullSearchResults - Local lcNewFilter, lnId, lnSelect, loClassLibsNode, loVcxNode - - lnSelect = Select() - lcAlias = Thisform.cSearchResultsAlias - lcFilter = '' - - *-- Build Filter clause for selected Node---------------------------- - Do Case - Case node.index = 1 && Master top node - lcFilter = '' - - Case node.parent.index = 1 && One of the Main Root Nodes - lcFileType = Upper(GetWordNum(node.key, 2, '_')) - Do Case - Case lcFileType $ ' SCX VCX PRG FRX DBF PJX' - lcFilter = 'Upper(Filetype) = [' + lcFileType + ']' - Case Upper(lcFileType) = 'CLASSES' - lcFilter = 'not Empty(class)' - Otherwise - lcFilter = '!(Upper(Filetype) $ [ SCX VCX PRG FRX DBF PJX ])' - Endcase - - Otherwise - lnId = Val(GetWordNum(node.key, 2, '_')) - - If ThisForm.NavigateToMasterRecord(lnId) - lcFilter = 'filepath = [' + Alltrim(filepath) + ']' - Endif - EndCase - - If 'CLASS_' $ Upper(node.key) - lcFilter = Iif(Empty(lcFilter), '', lcFilter + ' and ') + 'class = [' + Alltrim(class) + ']' - Endif - - *--- Merge Main form filter and TreeView filter - If thisform.lApplyFilter and !Empty(Thisform.cFilter) and !Empty(lcFilter) - lcNewFilter = Alltrim(Thisform.cFilter) + ' and ' + lcFilter - Else - lcNewFilter = lcFilter - Endif - - Select(lcAlias) - Set Filter To &lcNewFilter - Goto top - - Thisform.oGrid.SetFocus - This.SetFocus() - *Thisform.Refresh() - - Select(lcAlias) - - - ENDPROC - - PROCEDURE containerLeft.oTreeView.Refresh - *** ActiveX Control Method *** - - ENDPROC - - PROCEDURE containerRight.Container1.chkReplaceMode.Click - If thisform.oSearchEngine.oSearchOptions.lEnableReplaceMode = .f. - This.Value = .f. - MessageBox('You must enable Replace Mode in the Options form before it can be used.', 32, 'Notice') - Thisform.editSearch.SetFocus() - Endif - - DoDefault() - - If thisform.lReplaceMode = .t. - - ThisForm.FocusOnReplacePageframe() - - EndIf - - ENDPROC - - PROCEDURE containerRight.Container1.chkReplaceMode.Refresh - This.Visible = !Thisform.lSearching - - ENDPROC - - PROCEDURE containerRight.Container1.cmdClassBrowser.Click - Local lcClass, lcFile - - lcFile = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.filepath')) - lcClass = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.class')) - - Do Case - Case Empty(m.lcFile) - Return - Case Empty(m.lcClass) - Do (_Browser) With m.lcFile - Otherwise - Do (_Browser) With m.lcFile, m.lcClass - Endcase - - - ENDPROC - - PROCEDURE containerRight.Container1.cmdClassBrowser.Refresh - Local lcFile - - lcFile = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.filepath')) - - This.visible = !Empty(lcFile) and Upper(JustExt(lcFile)) = 'VCX' - - ENDPROC - - PROCEDURE containerRight.Container1.cmdEdit.Click - Thisform.EditFile() - ENDPROC - - PROCEDURE containerRight.Container1.cmdEdit.Refresh - Local lcFile - - This.Enabled = Reccount(Thisform.cSearchResultsAlias) > 0 - - lcFile = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.filepath')) - This.visible = !Empty(lcFile) - - ENDPROC - - PROCEDURE containerRight.Container1.cmdEdit.RightClick - Local lcAlias, lcCode, lcMethod, lcTempFile, loEditorWin - - lcAlias = (Thisform.cSearchResultsAlias) - lcCode = &lcAlias..ProcCode - If Empty(m.lcCode) - Return - Endif - - lcMethod = Trim(Evl(&lcAlias..MethodName, 'Method')) - lcTempFile = Addbs(Sys(2023)) + m.lcMethod + Sys(2015) + '.prg' - Strtofile(m.lcCode, m.lcTempFile) - Modify command (m.lcTempFile) Nowait - - If IsThorThere() - loEditorWin = Execscript(_Screen.cThorDispatcher, 'Class= editorwin from pemeditor') - m.loEditorWin.SetTitle(m.lcTempFile) - ThisForm.oSearchEngine.ThorMoveWindow() - Endif - - - ENDPROC - - PROCEDURE containerRight.Container1.cmdGoToObject.Click - Thisform.editObjectfromCurrentRow() - ENDPROC - - PROCEDURE containerRight.Container1.cmdGoToObject.Refresh - Local lcFile, lcMatchType, lcName - - If IsThorThere() - lcFile = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.filepath')) - lcName = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.name')) - lcMatchType = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.MatchType')) - - This.Visible = Not Empty(m.lcName) ; - And Not Empty(m.lcFile) ; - And Inlist(Upper(Justext(m.lcFile)), 'SCX', 'VCX') ; - And 0 = Atc(m.lcMatchType, MatchType_Name + MATCHTYPE_PROPERTY_NAME + MATCHTYPE_PROPERTY_VALUE + MATCHTYPE_PROPERTY_DEF) - Else - This.Visible = .F. - Endif - ENDPROC - - PROCEDURE containerRight.Container1.cmdMenu.Click - Thisform.EditMenufromCurrentRow() - ENDPROC - - PROCEDURE containerRight.Container1.cmdMenu.Refresh - Local lcFile, lcName - - If IsThorThere() - lcFile = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.filepath')) - This.Visible = Not Empty(m.lcFile) And Inlist(Upper(Justext(m.lcFile)), 'MNX', 'MPR') - Else - This.Visible = .F. - Endif - ENDPROC - - PROCEDURE containerRight.Container1.cmdOpenExplorer.Click - Local lcPath, lcFile - - lcFile = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.filepath')) - - If Empty(lcFile) - Return - Endif - - OpenExplorerWindow(lcFile) - - - ENDPROC - - PROCEDURE containerRight.Container1.cmdOpenExplorer.Refresh - Local lcFile - - lcFile = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.filepath')) - - This.visible = !Empty(lcFile) - - ENDPROC - - PROCEDURE containerRight.Container1.cmdReport.Click - Local lcChoice, lnBar - lcChoice = '' - lnBar = 0 - CreateContextMenu('ExportContextMenu') - - lnBar = m.lnBar + 1 - Define Bar (m.lnBar) Of ExportContextMenu Prompt 'To DBF or XLSX' - On Selection Bar (m.lnBar) Of ExportContextMenu m.lcChoice = 'To DBF or XLSX' - - lnBar = m.lnBar + 1 - Define Bar (m.lnBar) Of ExportContextMenu Prompt 'To Cursor' - On Selection Bar (m.lnBar) Of ExportContextMenu m.lcChoice = 'To Cursor' - - lnBar = m.lnBar + 1 - Define Bar (m.lnBar) Of ExportContextMenu Prompt 'View in Browser' - On Selection Bar (m.lnBar) Of ExportContextMenu m.lcChoice = 'View in Browser' - - - - Activate Popup ExportContextMenu - Release Popups ExportContextMenu - - Do Case - Case m.lcChoice = 'To DBF or XLSX' - Thisform.ExportToExcel(.T.) - Case m.lcChoice = 'To Cursor' - Thisform.ExportToExcel(.F.) - Case m.lcChoice = 'View in Browser' - Thisform.ViewReport() - Endcase - - - - ENDPROC - - PROCEDURE containerRight.Container1.cmdReport.Refresh - This.Visible = !Thisform.lSearching and !Eof(Thisform.cSearchResultsAlias) && and !Thisform.lReplaceMode - ENDPROC - - PROCEDURE containerRight.Container1.cmdSearchErrors.Click - ThisForm.ShowSearchErrors() - - *-- For now, Object Inspector slow VFP way down, so can't use it until that gets fixed. - *!* Local loInspector - - *!* loInspector = ExecScript(_Screen.cThorDispatcher, "Class= inspector from inspector") - - *!* If Vartype(loInspector) = 'O' - *!* loInspector.oRoot = Thisform.oSearchEngine.oSearchErrors - *!* loInspector.Caption = 'GoFish Search Errors:' - *!* loInspector.Show() - *!* Endif - - - - ENDPROC - - PROCEDURE containerRight.Container1.cmdSearchErrors.Refresh - This.Visible = (Thisform.oSearchEngine.oSearchErrors.Count > 0) and !thisform.lSearching - ENDPROC - - PROCEDURE containerRight.Container1.Command1.Click - ThisForm.ShowGoFishHelpPage() - ENDPROC - - PROCEDURE containerRight.Container1.Command1.Refresh - This.Visible = !Thisform.lSearching - - ENDPROC - - PROCEDURE containerRight.Container1.Container1.chkApplyFilter.Click - - - ENDPROC - - PROCEDURE containerRight.Container1.Container1.chkApplyFilter.Valid - Thisform.ApplyFilter() - ThisForm.UpdateTreeView() - This.Parent.Refresh() - ENDPROC - - PROCEDURE containerRight.Container1.Container1.cmdFilter.Click - ThisForm.ShowFilterForm('GoFish_FilterPF') - This.Parent.Parent.gridFiles.Refresh() - This.Parent.Parent.gridFiles.SetFocus() - - External form GoFish_Filter - ENDPROC - - PROCEDURE containerRight.Container1.Container1.cmdFilter.MouseEnter - LPARAMETERS nButton, nShift, nXCoord, nYCoord - - Local lcFilter - - lcFilter = Evl(Filter(Thisform.cSearchResultsAlias), '') - lcFilter = Strtran(lcFilter, ".And.", Chr[13] + ' And ', 1, -1, 1) - - This.ToolTipText = lcFilter - ENDPROC - - PROCEDURE containerRight.Container1.Container1.cmdFilter.Refresh - Local lcFilter - This.FontBold = Not Empty(Thisform.cFilter)&& and Thisform.lApplyFilter - - This.Enabled = Reccount(Thisform.cSearchResultsAlias) > 0 And Not Thisform.lSearching &&and !Thisform.lReplaceMode - - This.Parent.chkApplyFilter.Enabled = This.Enabled And Not Empty(Thisform.cFilter) - - lcFilter = Evl(Thisform.cFilter, '') - lcFilter = Strtran(m.lcFilter, '.And.', Chr[13] + ' And ', 1, -1, 1) - - This.ToolTipText = Iif(Thisform.lApplyFilter, '', '*** Not currently active ***' + Chr[13]) + m.lcFilter - - ENDPROC - - PROCEDURE containerRight.Container1.Container1.cmdFilter.RightClick - Local lcFilter - - lcFilter = Evl(Filter(Thisform.cSearchResultsAlias), '') - lcFilter = Strtran(lcFilter, ".And.", Chr[13] + ' And ', 1, -1, 1) - - lcFilter = Iif(Thisform.lApplyFilter, '', '*** Not currently active ***' + Chr[13]) + m.lcFilter - MessageBox(lcFilter, 0, 'GoFish Filter') - ENDPROC - - PROCEDURE containerRight.Container1.Container1.Refresh - If Thisform.lApplyFilter and Reccount(Thisform.cSearchResultsAlias) > 0 and !Thisform.lSearching - This.BorderWidth = 2 - this.BorderColor = Rgb(255,0,0) - Else - This.BorderWidth = 1 - this.BorderColor = Rgb(0,0,0) - EndIf - - This.Visible = !Thisform.lSearching - - ENDPROC - - PROCEDURE containerRight.Container1.Container2.chkCodeOnly.Refresh - This.Visible = !Thisform.lSearching - - ENDPROC - - PROCEDURE containerRight.Container1.Container2.chkCodeOnly.Valid - Local lcFilter - - lcFilter = Thisform.ApplyFilter() - - If Empty(Thisform.cTreeViewFilter) - Thisform.UpdateTreeView() - Else - lcFilter = Thisform.CombineFilters(m.lcFilter, Thisform.cTreeViewFilter) - Set Filter To &lcFilter In (Thisform.cSearchResultsAlias) - Endif - - Thisform.Refresh() - - - ENDPROC - - PROCEDURE containerRight.Container1.Container2.Refresh - If thisform.lCodeOnly and !Thisform.lSearching - This.BorderWidth = 2 - Else - This.BorderWidth = 0 - EndIf - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.cmdReplaceErrors.Click - ThisForm.ShowReplaceErrors() - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.cmdReplaceErrors.Refresh - This.Visible = (Thisform.oSearchEngine.oReplaceErrors.Count > 0) and !thisform.lSearching - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.cmdReplaceHistory.Click - Thisform.ShowReplaceHistory() - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.cmdReplaceHistory.Refresh - This.Visible = Thisform.lReplaceMode - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.optiongroupReplaceMode.optionAdvancedReplace.Valid - ThisForm.FocusOnReplacePageframe() - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.optiongroupReplaceMode.Refresh - This.Visible = (Thisform.nReplaceRisk > 0) And ; - Thisform.oSearchEngine.oSearchOptions.lEnableReplaceMode = .T. ; - And Thisform.lReplaceMode = .T. - - If Thisform.oSearchEngine.oSearchOptions.lEnableReplaceMode = .F. - Thisform.lReplaceMode = .F. - Endif - - - - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdCheckAll.Click - ThisForm.CheckAll() - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdCheckAll.Refresh - This.Visible = Thisform.lReplaceMode and Thisform.nReplaceMode <> 2 - - This.Enabled = (Reccount(Thisform.cSearchResultsAlias) > 0) - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdClearAll.Click - ThisForm.ClearAll() - - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdClearAll.Refresh - This.Visible = Thisform.lReplaceMode and Thisform.nReplaceMode <> 2 - - This.Enabled = (Reccount(Thisform.cSearchResultsAlias) > 0) - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdReplace.Click - ThisForm.Replace() - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page1.cmdReplace.Refresh - This.Enabled = Reccount(Thisform.cSearchResultsAlias) > 0 - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page1.editReplaceExpression.GotFocus - This.SelStart = 0 - This.SelLength = Len(This.Value) - this.Tag = this.value - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page1.editReplaceExpression.LostFocus - If this.Value <> this.Tag - Thisform.DoReplace(.t.) && .t. means do a "Preview" Replace - Endif - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page2.cmdSaveLine.Click - Thisform.ReplaceLine() - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page2.cmdSaveLine.Refresh - Local lcCursor, llReplaced, lnRiskLevel - - lcCursor = Thisform.cSearchResultsAlias - lnRiskLevel = &lcCursor..ReplaceRisk - llReplaced = &lcCursor..Replaced - - This.Enabled = Reccount(Thisform.cSearchResultsAlias) > 0 and (lnRiskLevel <= Thisform.nReplaceRisk) and !llReplaced - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page2.editReplaceLine.Refresh - Local lcCursor, llReplaced, lnRiskLevel - - lcCursor = Thisform.cSearchResultsAlias - lnRiskLevel = &lcCursor..ReplaceRisk - llReplaced = &lcCursor..Replaced - - This.Enabled = !Eof(lcCursor) and (lnRiskLevel <= Thisform.nReplaceRisk) and !llReplaced - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page2.editReplaceLine.Valid - Local lcCursor, llReplaced, lnRiskLevel - - *!* Replace ReplaceLine with This.Value in (Thisform.cSearchResultsAlias) - *!* Replace TrimmedReplaceLine with Thisform.oSearchEngine.TrimWhiteSpace(This.value) in (Thisform.cSearchResultsAlias) - - - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdBrowse.Click - lcFile = GetFile('PRG', '', 'Select', 0, 'Choose UDF File:') - - If Empty(lcFile) - Thisform.oSearchEngine.cReplaceUDFCode = '' - Thisform.cReplaceUDFFilename = '' - Else - Thisform.oSearchEngine.cReplaceUDFCode = FileToStr(lcFile) - Thisform.cReplaceUDFFilename = lcFile - Endif - - Thisform.DoReplace(.t.) - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdCheckAll.Click - ThisForm.CheckAll() - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdCheckAll.Refresh - This.Visible = Thisform.lReplaceMode and Thisform.nReplaceMode <> 2 - - This.Enabled = (Reccount(Thisform.cSearchResultsAlias) > 0) - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdClearAll.Click - ThisForm.ClearAll() - - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdClearAll.Refresh - This.Visible = Thisform.lReplaceMode and Thisform.nReplaceMode <> 2 - - This.Enabled = (Reccount(Thisform.cSearchResultsAlias) > 0) - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdEdit.Click - Local lcFile - - lcFile = Thisform.cReplaceUDFFilename - Modify Command (lcFile) - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdEdit.Refresh - This.Enabled = !Empty(Thisform.cReplaceUDFFilename) - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdReplace.Click - ThisForm.Replace() - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.cmdReplace.Refresh - This.Enabled = !Empty(Thisform.cReplaceUDFFilename) and ; - !Empty(Thisform.oSearchEngine.cReplaceUDFCode) and ; - Reccount(Thisform.cSearchResultsAlias) > 0 - - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Page3.Text1.MouseEnter - LPARAMETERS nButton, nShift, nXCoord, nYCoord - - This.ToolTipText = This.Value - - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Pageframe.Refresh - This.ActivePage = Thisform.nReplaceMode - ENDPROC - - PROCEDURE containerRight.Container1.containerReplaceText.Refresh - This.Visible = Thisform.lReplaceMode - - *!* llEnableControls = (Reccount(Thisform.cSearchResultsAlias) > 0) - - *!* This.SetAll('Enabled', llEnableControls) - - *!* This.cmdHelp.Enabled = .t. - *!* This.cmdReplaceHistory.Enabled = .t. - - *!* lnColor = Rgb(128,128,128) - - *!* Do Case - *!* Case Thisform.nReplaceRisk = 1 - *!* lnColor = Rgb(0,176,80)&& Green - - *!* Case Thisform.nReplaceRisk = 2 - *!* lnColor = Rgb(255,255,128) && Yellow - - *!* Case Thisform.nReplaceRisk = 3 - *!* lnColor = Rgb(255,192,0)&& Orange - *!* Endcase - - *!* This.BackColor = lnColor - - - ENDPROC - - PROCEDURE containerRight.Container1.GridFiles.AfterRowColChange - Lparameters nColIndex - - ThisForm.ShowCodeForCurrentRow() - - - - ENDPROC - - PROCEDURE containerRight.Container1.GridFiles.colProcess.Check1.Click - Local lcCursor, llValue - - DoDefault() - - llProcess = Evaluate(Thisform.cSearchResultsAlias + '.process') - lnId = Evaluate(Thisform.cSearchResultsAlias + '.id') - - *-- Update GFSE cursor for same Id - Replace process with llProcess in (Thisform.oSearchEngine.cSearchResultsAlias) for id = lnId - - If Thisform.nReplaceMode = 3 and (Empty(Thisform.cReplaceUDFFilename) or Empty(Thisform.oSearchEngine.cReplaceUdfCode)) - Return - Endif - - Thisform.oSearchEngine.oSearchOptions.lPreviewReplace = .T. - Thisform.oSearchEngine.ReplaceFromCurrentRow(Thisform.cSearchResultsAlias) - - Thisform.ShowCodeForCurrentRow(.T.) - - *This.Parent.Parent.AfterRowColChange() - - - ENDPROC - - PROCEDURE containerRight.Container1.GridFiles.colProcess.Check1.When - Local lcCursor - - lcCursor = thisform.cSearchResultsAlias - - Return !(Evaluate(lcCursor + '.replaced')) - ENDPROC - - PROCEDURE containerRight.Container1.GridFiles.Init - Local lcFormatGridPrg, lcPRG, lcPRGColor, lcResultsCursor, lcSCX, lcSCXColor, lcVCX, lcVCXColor, lcAppPath - - Thisform.oGrid = This - - lcResultsCursor = Thisform.cSearchResultsAlias - - lcFormatGridPrg = 'GoFish_FormatGrid.PRG' - - * First choice: Thor - If Type('_Screen.cThorDispatcher') = 'C' - lcFileName = Execscript(_Screen.cThorDispatcher, 'Full Path=Thor_Proc_GoFish_FormatGrid.PRG') - If (Not Isnull(m.lcFileName)) and File(lcFileName) - lcFormatGridPrg = m.lcFileName - Endif - Endif - - - If !File(lcFormatGridPrg) && If not found in the VFP path - lcFormatGridPrg = Addbs(_screen._gofish.capppath) + lcFormatGridPrg && Look for it in the GoFish folder. - EndIf - - If File (lcFormatGridPrg) && Call user file to assign colors, if present, otherwise use default - Do (lcFormatGridPrg) with This, lcResultsCursor - Else - - lcSCX = 'Upper(' + lcResultsCursor + '.filetype) = "SCX"' - lcSCXColor = 'RGB(0,0,128)' - - lcVCX = 'Upper(' + lcResultsCursor + '.filetype) = "VCX"' - lcVCXColor = 'RGB(0,128,0)' - - lcPRG = 'Upper(' + lcResultsCursor + '.filetype) $ "PRG TXT H INI XML HTM HTML ASP ASPX"' - lcPRGColor = 'RGB(255,0,0)' - - This.SetAll('DynamicForeColor', 'Iif(' + lcSCX + ', ' + lcSCXColor + ', ' + ; - 'Iif(' + lcVCX + ', ' + lcVCXColor + ', ' + ; - 'Iif(' + lcPRG + ',' + lcPRGColor + ', RGB(0,0,0))' + ; - ')' + ; - ')', 'COLUMN') - - Endif - - This.ReadOnly = .F. - This.SetAll('Width', 80, 'Column') - This.SetAll('ReadOnly', .T., 'Column') - This.colProcess.ReadOnly = .F. - - This.SetAll('Movable', .t., 'Column') - ENDPROC - - PROCEDURE containerRight.Container1.GridFiles.Refresh - This.Enabled = !Thisform.lSearching - - ENDPROC - - PROCEDURE containerRight.Container1.lblResults.Refresh - - Local laFileCount[1], laRecordCount[1], lcCursor, lcFilter, lcMessage, llFiltered, lnRecords - Local lnSeconds, loSearchEngine - - loSearchEngine = Thisform.oSearchEngine - - lcCursor = Thisform.cSearchResultsAlias - lcFilter = Filter(lcCursor) - lnSeconds = thisform.oSearchEngine.nSearchTime - lcMessage = '' - - If Empty(lcFilter) - lcFilter = '1=1' - EndIf - - lnRecords = Reccount(lcCursor) - - Select Count(*) from (Select filename distinct from &lcCursor where &lcFilter order by 1) temp into array laFileCount - Select Count(*) from (Select matchline from &lcCursor where &lcFilter) temp into array laRecordCount - - llFiltered = !Empty(Filter(lcCursor)) - - Do Case - *-- If we have a filter, but it results in no results being displayed... - Case !Thisform.lInit - lcMessage = '' - - Case Thisform.oSearchEngine.nMatchLines = 0 and Thisform.oSearchEngine.lEscPress = .t. - lcMessage = 'No Results' - - Case Thisform.lSearching = .t. - lcMessage = 'Searching...' - - Case Thisform.oSearchEngine.nMatchLines > 0 and !Empty(Thisform.cFilter) and Eof(Thisform.cSearchResultsAlias) - lcMessage = 'No matches on specified filter.' - - Case Thisform.oSearchEngine.nMatchLines = 0 - lcMessage = 'No matches found.' - - Otherwise - lcMessage = Iif(llFiltered, 'Filtered to ', '') + ; - Alltrim(Str(laRecordCount)) + ; - Iif(Empty(thisform.oSearchEngine.oSearchOptions.cSearchExpression), ' matches ', ' match lines') + ; - ' in ' + Alltrim(Str(laFileCount)) + ' File(s)' - Endcase - - Thisform.cResultsMessage = lcMessage - - This.Caption = lcMessage - - - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.ButtonContainer.lblFilePath.Refresh - #Define CR Chr[13] - #Define Spacing Space(4) - - Local lcBaseClass, lcClass, lcFilePath, lcMatchType, lcMethod, lcMethodName, lcObjectName - Local lcRelativePath, lcTimeStamp, lnMaxWidth, ltTimeStamp - - lcFilePath = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.filepath')) - - ltTimeStamp = Evaluate(Thisform.cSearchResultsAlias + '.timestamp') - lcTimeStamp = Iif(Not Empty(m.ltTimeStamp), Ttoc(m.ltTimeStamp), '') - - lcClass = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.Class')) - If Not Empty(m.lcClass) - lcBaseClass = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.BaseClass')) - If Not Empty(m.lcBaseClass) - lcClass = m.lcClass + ' (' + m.lcBaseClass + ')' - Endif - - Endif - - lcObjectName = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.Name')) - lcMethodName = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.MethodName')) - lcMatchType = Alltrim(Evaluate(Thisform.cSearchResultsAlias + '.MatchType')) - - Do Case - Case Empty(m.lcObjectName) And Empty(m.lcMethodName) - lcMethod = '' - Case Empty(m.lcObjectName) - lcMethod = m.lcMethodName + '()' - Case Empty(m.lcMethodName) - lcMethod = m.lcObjectName - Otherwise - lcMethod = m.lcObjectName + '.' + m.lcMethodName + '()' - Endcase - - This.ToolTipText = 'File: ' + m.lcFilePath ; - + Iif(Empty(m.lcClass), '', CR + 'Class: ' + m.lcClass) ; - + Iif(Empty(m.lcObjectName), '', CR + 'Object: ' + m.lcObjectName) ; - + Iif(Empty(m.lcMethodName), '', CR + Iif(0 # Atc(' 55 - Thisform.nSplitterPosRatio = m.loSplitter.Top / Thisform.Height - m.loSplitter.MoveSplitterToPosition(Thisform.Height - 30) - Otherwise - lnRestorePos = Int(Evl(Thisform.nSplitterPosRatio, .50) * Thisform.Height) - m.loSplitter.MoveSplitterToPosition(m.lnRestorePos) - EndCase - - Thisform.lMaximizeCodeView = .F. - - This.Parent.Refresh() - - Thisform.editSearch.SetFocus() - - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.cmdCompressCodeview.Refresh - This.Visible = .T. - Do Case - Case Thisform.nCodeWindowPosition = 1 And This.Parent.Height > 55 - This.Picture = 'images\Minimizecodeview.gif' - This.ToolTipText = 'Collapse code view' - This.Visible = Not Thisform.lSearching - Case Thisform.nCodeWindowPosition = 1 - This.Picture = 'images\Restorecodeview.gif' - This.ToolTipText = 'Expand code view' - This.Visible = Not Thisform.lSearching - Otherwise - This.Visible = .F. - Endcase - - - - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.cmdMaximizeCodeView.Click - Local lnRestorePos, loSplitter - - Do Case - Case Thisform.nCodeWindowPosition = 1 and Thisform.lMaximizeCodeView = .T. - Thisform.lMaximizeCodeView = .F. - With This.Parent.Parent.Parent - loSplitter = .Splitter1 - .Splitter1.Visible = .T. - .Container1.Visible = .T. - Endwith - lnRestorePos = Int(Evl(Thisform.nSplitterPosRatio, .50) * Thisform.Height) - m.loSplitter.MoveSplitterToPosition(m.lnRestorePos) - - Thisform.oBrowser.SetFocus() - Thisform.editSearch.SetFocus() - - Case Thisform.nCodeWindowPosition = 1 and Thisform.lMaximizeCodeView = .F. and This.Parent.Height > 55 - With This.Parent.Parent.Parent - loSplitter = .Splitter1 - Endwith - Thisform.nSplitterPosRatio = m.loSplitter.Top / Thisform.Height - Thisform.lMaximizeCodeView = Not Thisform.lMaximizeCodeView - - Otherwise - Thisform.lMaximizeCodeView = Not Thisform.lMaximizeCodeView - Endcase - - - This.Parent.Refresh() - - - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.cmdMaximizeCodeView.Refresh - *!* ******************** Removed 11/20/2015 ***************** - *!* Do Case - *!* Case Thisform.lMaximizeCodeView = .F. - *!* This.Picture = 'images\zoom-in-2-16.bmp' - *!* This.ToolTipText = 'Maximize code view (Ctrl+F11)' - *!* Case Thisform.nCodeWindowPosition = 1 - *!* This.Picture = 'images\zoom-out-2-16.bmp' - *!* This.ToolTipText = 'Restore to non-collapsed view (Ctrl+F11)' - *!* Otherwise - *!* This.Picture = 'images\zoom-out-2-16.bmp' - *!* This.ToolTipText = 'Restore Down code view (Ctrl+F11)' - *!* Endcase - - - Do Case - Case Thisform.nCodeWindowPosition = 1 and Thisform.lMaximizeCodeView = .T. - This.Picture = 'images\restorecodeview.gif' - This.ToolTipText = 'Restore to non-collapsed view (Ctrl+F11)' - Case Thisform.nCodeWindowPosition = 1 and Thisform.lMaximizeCodeView = .F. - This.Picture = 'images\maximizecodeview.gif' - This.ToolTipText = 'Maximize code view (Ctrl+F11)' - Case Thisform.lMaximizeCodeView = .T. - This.Picture = 'images\Restore.bmp' - This.ToolTipText = 'Restore Down code view (Ctrl+F11)' - Case Thisform.lMaximizeCodeView = .F. - This.Picture = 'images\maximize.bmp' - This.ToolTipText = 'Maximize code view (Ctrl+F11)' - Endcase - - This.Visible = Not Thisform.lSearching - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.cmdZoomIn.Refresh - This.Enabled = Reccount(Thisform.cSearchResultsAlias) > 0 - This.Visible = (This.Parent.Height > 55) And Not Thisform.lSearching - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.cmdZoomOut.Refresh - This.Enabled = Reccount(Thisform.cSearchResultsAlias) > 0 - This.Visible = (This.Parent.Height > 55) And Not Thisform.lSearching - - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.comboViewPosition.Init - This.AddItem('Below') - This.AddItem('Right') - This.AddItem('Left') - - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.comboViewPosition.Refresh - This.Visible = !Thisform.lSearching - - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.Init - Thisform.oWebControl = This - - DoDefault() - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.lblCodeView.Refresh - This.Visible = !Thisform.lSearching - - ENDPROC - - PROCEDURE containerRight.Container2.containerWebControl.Resize - ThisForm.ResizeCodePage() - - ENDPROC - - PROCEDURE containerRight.Splitter1.movesplittertoposition - lparameters tnPosition - - DoDefault(tnPosition) - - If This.Parent.container2.Height < 55 - Thisform.ShowHtmlCodeView() - Endif - - Thisform.Refresh() - ENDPROC - - PROCEDURE editSearch.GotFocus - This.Tag = Upper(This.Value) - - This.SelStart = 0 - This.SelLength = Len(This.Value) - ENDPROC - - PROCEDURE editSearch.InteractiveChange - Local lcFillerChar, lcIllegalCharacters, lcValue - - lcValue = This.value - lcFillerChar = Chr(8) - - For x = 1 to 31 - If !lcIllegalCharacters - lcIllegalCharacters = Chr(x) $ lcValue - Endif - - lcValue = Strtran(lcValue, Chr(x), lcFillerChar) - EndFor - - If lcIllegalCharacters - MessageBox('The search expression contains invalid characters, which will be replaced with "' + lcFillerChar + '"' + ; - Chr(13) + Chr(13) +; - 'You must correct the search expression before searching will work correctly.', 16, 'GoFish notice:') - Endif - - This.value = lcValue - this.Parent.comboSearchExpressionHistory.Value = lcValue - - ENDPROC - - PROCEDURE editSearch.KeyPress - LPARAMETERS nKeyCode, nShiftAltCtrl - - lcControlSource = This.ControlSource - - Store this.value to &lcControlSource - - If nKeyCode = 13 - Thisform.Search() - EndIf - - If nKeyCode = 160 && '{ALT+DNARROW}' - Thisform.comboSearchExpressionHistoryDropDownArrow.SetFocus() - Endif - - ENDPROC - - PROCEDURE editSearch.LostFocus - Return - - - *!* If Upper(This.Value) <> This.Tag - *!* Thisform.nCurrentId = 0 - *!* Thisform.oTree.Nodes.Clear() - *!* Thisform.ClearSearchResultsCursor() - *!* lcFilter = Thisform.cFilter - *!* Set Filter To &lcFilter in (thisform.cSearchResultsAlias) && Need to remove any filter that the Treeview has applied - *!* Thisform.ShowHtml(' ') - *!* Thisform.Refresh() - *!* EndIf - - - ENDPROC - - PROCEDURE editSearch.MouseEnter - LPARAMETERS nButton, nShift, nXCoord, nYCoord - - This.ToolTipText = This.value - ENDPROC - - PROCEDURE editSearch.Refresh - This.Enabled = Not Thisform.lSearching && and !Thisform.lReplaceMode - - This.FontSize = Thisform.nSearchBoxFontSize - ENDPROC - - PROCEDURE lblScope.Refresh - This.Enabled = !Thisform.lSearching - ENDPROC - - PROCEDURE lblSearch.Refresh - This.Enabled = !Thisform.lSearching - ENDPROC - - PROCEDURE ProgressBar.Init - This.Visible = .f. - - ENDPROC - - PROCEDURE ProgressBar.start - Lparameters tnMaxValue, lcCaption - - This.Left = Thisform.splitter2.Left + 20 + Thisform.containerRight.Container1.Left - This.Top = Thisform.oGrid.Top + 85 - This.Label1.Caption = Evl(lcCaption, 'Searching...') - - DoDefault(tnMaxValue) - ENDPROC - - PROCEDURE timerShowAdvancedForm.Timer - If thisform.lInit = .t. - This.Interval = 0 - Thisform.ShowAdvancedForm() - Endif - - - - ENDPROC - -ENDDEFINE +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_results.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="gf_resultsform1" Baseclass="form" /> + +* \ No newline at end of file diff --git a/Source/Forms/gofish_results.scx b/Source/Forms/gofish_results.scx index b304aae..cd0459b 100644 Binary files a/Source/Forms/gofish_results.scx and b/Source/Forms/gofish_results.scx differ diff --git a/Source/Forms/gofish_results_desktop.dataenvironment.sc2 b/Source/Forms/gofish_results_desktop.dataenvironment.sc2 new file mode 100644 index 0000000..e174c57 --- /dev/null +++ b/Source/Forms/gofish_results_desktop.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_results_desktop.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="2" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gofish_results_desktop.gf_resultsform1.sc2 b/Source/Forms/gofish_results_desktop.gf_resultsform1.sc2 new file mode 100644 index 0000000..c851260 --- /dev/null +++ b/Source/Forms/gofish_results_desktop.gf_resultsform1.sc2 @@ -0,0 +1,282 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_results_desktop.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS gf_resultsform1 AS gf_resultsform OF "..\lib\gofishui.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + * + Desktop = .T. + DoCreate = .T. + Name = "Gf_resultsform1" + lblSearch.Name = "lblSearch" + comboSearchExpressionHistory.Name = "comboSearchExpressionHistory" + editSearch.Name = "editSearch" + comboSearchScopeHistory.Name = "comboSearchScopeHistory" + lblScope.Name = "lblScope" + containerLeft.cntVersion.cmdVFPX.Name = "cmdVFPX" + containerLeft.cntVersion.Gf_versionlabel1.Name = "Gf_versionlabel1" + containerLeft.cntVersion.Name = "cntVersion" + containerLeft.Name = "containerLeft" + containerLeft.oTreeView.Height = 513 + containerLeft.oTreeView.Left = 0 + containerLeft.oTreeView.Name = "oTreeView" + containerLeft.oTreeView.Top = 0 + containerLeft.oTreeView.Width = 186 + containerRight.CONTAINER1.chkReplaceMode.Alignment = 0 + containerRight.CONTAINER1.chkReplaceMode.Name = "chkReplaceMode" + containerRight.CONTAINER1.cmdClassBrowser.Name = "cmdClassBrowser" + containerRight.CONTAINER1.cmdEdit.Name = "cmdEdit" + containerRight.CONTAINER1.cmdGoToObject.Name = "cmdGoToObject" + containerRight.CONTAINER1.cmdMenu.Name = "cmdMenu" + containerRight.CONTAINER1.cmdOpenExplorer.Name = "cmdOpenExplorer" + containerRight.CONTAINER1.cmdReport.Name = "cmdReport" + containerRight.CONTAINER1.cmdSearchErrors.Name = "cmdSearchErrors" + containerRight.CONTAINER1.COMMAND1.Name = "COMMAND1" + containerRight.CONTAINER1.CONTAINER1.CHKAPPLYFILTER.Alignment = 0 + containerRight.CONTAINER1.CONTAINER1.CHKAPPLYFILTER.Name = "CHKAPPLYFILTER" + containerRight.CONTAINER1.CONTAINER1.cmdFilter.Name = "cmdFilter" + containerRight.CONTAINER1.CONTAINER1.Name = "CONTAINER1" + containerRight.CONTAINER1.Container2.chkCodeOnly.Alignment = 0 + containerRight.CONTAINER1.Container2.chkCodeOnly.Name = "chkCodeOnly" + containerRight.CONTAINER1.Container2.Name = "Container2" + containerRight.CONTAINER1.containerReplaceText.cmdReplaceErrors.Name = "cmdReplaceErrors" + containerRight.CONTAINER1.containerReplaceText.cmdReplaceHistory.Name = "cmdReplaceHistory" + containerRight.CONTAINER1.containerReplaceText.Name = "containerReplaceText" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.Name = "optiongroupReplaceMode" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionAdvancedReplace.Left = 158 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionAdvancedReplace.Name = "optionAdvancedReplace" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionAdvancedReplace.Top = 5 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceLine.Left = 92 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceLine.Name = "optionReplaceLine" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceLine.Top = 5 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceText.Left = 5 + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceText.Name = "optionReplaceText" + containerRight.CONTAINER1.containerReplaceText.optiongroupReplaceMode.optionReplaceText.Top = 5 + containerRight.CONTAINER1.containerReplaceText.PageFrame.ErasePage = .T. + containerRight.CONTAINER1.containerReplaceText.PageFrame.Height = 55 + containerRight.CONTAINER1.containerReplaceText.PageFrame.Name = "PageFrame" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.cmdCheckAll.Name = "cmdCheckAll" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.cmdClearAll.Name = "cmdClearAll" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.cmdReplace.Name = "cmdReplace" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.editReplaceExpression.Name = "editReplaceExpression" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.LABEL1.Name = "LABEL1" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE1.Name = "PAGE1" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE2.cmdSaveLine.Name = "cmdSaveLine" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE2.editReplaceLine.Name = "editReplaceLine" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE2.lblReplaceLine.Name = "lblReplaceLine" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE2.Name = "PAGE2" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdBrowse.Name = "cmdBrowse" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdCheckAll.Name = "cmdCheckAll" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdClearAll.Name = "cmdClearAll" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdEdit.Name = "cmdEdit" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.cmdReplace.Name = "cmdReplace" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.Name = "PAGE3" + containerRight.CONTAINER1.containerReplaceText.PageFrame.PAGE3.Text1.Name = "Text1" + containerRight.CONTAINER1.containerReplaceText.PageFrame.Top = 25 + containerRight.CONTAINER1.GridFiles.colProcess.CHECK1.Alignment = 2 + containerRight.CONTAINER1.GridFiles.colProcess.CHECK1.Name = "CHECK1" + containerRight.CONTAINER1.GridFiles.colProcess.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.colProcess.imageCheck.Height = 16 + containerRight.CONTAINER1.GridFiles.colProcess.imageCheck.Name = "imageCheck" + containerRight.CONTAINER1.GridFiles.colProcess.imageCheck.Width = 50 + containerRight.CONTAINER1.GridFiles.colProcess.LABEL1.Name = "LABEL1" + containerRight.CONTAINER1.GridFiles.colProcess.Name = "colProcess" + containerRight.CONTAINER1.GridFiles.colProcess.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN1.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN1.Name = "COLUMN1" + containerRight.CONTAINER1.GridFiles.COLUMN1.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN10.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN10.Name = "COLUMN10" + containerRight.CONTAINER1.GridFiles.COLUMN10.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN11.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN11.Name = "COLUMN11" + containerRight.CONTAINER1.GridFiles.COLUMN11.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN12.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN12.Name = "COLUMN12" + containerRight.CONTAINER1.GridFiles.COLUMN12.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN13.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN13.Name = "COLUMN13" + containerRight.CONTAINER1.GridFiles.COLUMN13.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN14.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN14.Name = "COLUMN14" + containerRight.CONTAINER1.GridFiles.COLUMN14.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN15.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN15.Name = "COLUMN15" + containerRight.CONTAINER1.GridFiles.COLUMN15.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN16.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN16.Name = "COLUMN16" + containerRight.CONTAINER1.GridFiles.COLUMN16.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN17.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN17.Name = "COLUMN17" + containerRight.CONTAINER1.GridFiles.COLUMN17.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN18.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN18.Name = "COLUMN18" + containerRight.CONTAINER1.GridFiles.COLUMN18.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN19.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN19.Name = "COLUMN19" + containerRight.CONTAINER1.GridFiles.COLUMN19.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN2.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN2.Name = "COLUMN2" + containerRight.CONTAINER1.GridFiles.COLUMN2.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN20.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN20.Name = "COLUMN20" + containerRight.CONTAINER1.GridFiles.COLUMN20.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN21.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN21.Name = "COLUMN21" + containerRight.CONTAINER1.GridFiles.COLUMN21.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN22.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN22.Name = "COLUMN22" + containerRight.CONTAINER1.GridFiles.COLUMN22.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN23.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN23.Name = "COLUMN23" + containerRight.CONTAINER1.GridFiles.COLUMN23.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN25.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN25.Name = "COLUMN25" + containerRight.CONTAINER1.GridFiles.COLUMN25.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN3.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN3.Name = "COLUMN3" + containerRight.CONTAINER1.GridFiles.COLUMN3.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN4.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN4.Name = "COLUMN4" + containerRight.CONTAINER1.GridFiles.COLUMN4.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN5.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN5.Name = "COLUMN5" + containerRight.CONTAINER1.GridFiles.COLUMN5.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN6.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN6.Name = "COLUMN6" + containerRight.CONTAINER1.GridFiles.COLUMN6.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN7.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN7.Name = "COLUMN7" + containerRight.CONTAINER1.GridFiles.COLUMN7.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN8.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN8.Name = "COLUMN8" + containerRight.CONTAINER1.GridFiles.COLUMN8.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.COLUMN9.Header1.Name = "Header1" + containerRight.CONTAINER1.GridFiles.COLUMN9.Name = "COLUMN9" + containerRight.CONTAINER1.GridFiles.COLUMN9.Text1.Name = "Text1" + containerRight.CONTAINER1.GridFiles.Name = "GridFiles" + containerRight.CONTAINER1.lblResults.Name = "lblResults" + containerRight.CONTAINER1.Name = "CONTAINER1" + containerRight.Container2.containerWebControl.ButtonContainer.lblFilePath.Name = "lblFilePath" + containerRight.Container2.containerWebControl.ButtonContainer.Name = "ButtonContainer" + containerRight.Container2.containerWebControl.cmdCompressCodeview.Name = "cmdCompressCodeview" + containerRight.Container2.containerWebControl.cmdMaximizeCodeView.Name = "cmdMaximizeCodeView" + containerRight.Container2.containerWebControl.CMDZOOMIN.Name = "CMDZOOMIN" + containerRight.Container2.containerWebControl.CMDZOOMOUT.Name = "CMDZOOMOUT" + containerRight.Container2.containerWebControl.comboViewPosition.Name = "comboViewPosition" + containerRight.Container2.containerWebControl.lblCodeView.Name = "lblCodeView" + containerRight.Container2.containerWebControl.Name = "containerWebControl" + containerRight.Container2.containerWebControl.OBROWSER.Height = 144 + containerRight.Container2.containerWebControl.OBROWSER.Left = 1 + containerRight.Container2.containerWebControl.OBROWSER.Name = "OBROWSER" + containerRight.Container2.containerWebControl.OBROWSER.Top = 23 + containerRight.Container2.containerWebControl.OBROWSER.Width = 794 + containerRight.Container2.Name = "Container2" + containerRight.Name = "containerRight" + containerRight.Splitter1.GRIPPER.GRIPPERDOT1.Name = "GRIPPERDOT1" + containerRight.Splitter1.GRIPPER.GRIPPERDOT1.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT1.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT1.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.GRIPPERDOT2.Name = "GRIPPERDOT2" + containerRight.Splitter1.GRIPPER.GRIPPERDOT2.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT2.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT2.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.GRIPPERDOT3.Name = "GRIPPERDOT3" + containerRight.Splitter1.GRIPPER.GRIPPERDOT3.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT3.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT3.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.GRIPPERDOT4.Name = "GRIPPERDOT4" + containerRight.Splitter1.GRIPPER.GRIPPERDOT4.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT4.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT4.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.GRIPPERDOT5.Name = "GRIPPERDOT5" + containerRight.Splitter1.GRIPPER.GRIPPERDOT5.SHAPEDARK.Name = "SHAPEDARK" + containerRight.Splitter1.GRIPPER.GRIPPERDOT5.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.Splitter1.GRIPPER.GRIPPERDOT5.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.Splitter1.GRIPPER.Name = "GRIPPER" + containerRight.Splitter1.Name = "Splitter1" + containerRight.splitter3.GRIPPER.GRIPPERDOT1.Name = "GRIPPERDOT1" + containerRight.splitter3.GRIPPER.GRIPPERDOT1.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT1.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT1.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.GRIPPERDOT2.Name = "GRIPPERDOT2" + containerRight.splitter3.GRIPPER.GRIPPERDOT2.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT2.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT2.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.GRIPPERDOT3.Name = "GRIPPERDOT3" + containerRight.splitter3.GRIPPER.GRIPPERDOT3.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT3.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT3.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.GRIPPERDOT4.Name = "GRIPPERDOT4" + containerRight.splitter3.GRIPPER.GRIPPERDOT4.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT4.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT4.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.GRIPPERDOT5.Name = "GRIPPERDOT5" + containerRight.splitter3.GRIPPER.GRIPPERDOT5.SHAPEDARK.Name = "SHAPEDARK" + containerRight.splitter3.GRIPPER.GRIPPERDOT5.SHAPELIGHT.Name = "SHAPELIGHT" + containerRight.splitter3.GRIPPER.GRIPPERDOT5.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + containerRight.splitter3.GRIPPER.Name = "GRIPPER" + containerRight.splitter3.Name = "splitter3" + splitter2.GRIPPER.GRIPPERDOT1.Name = "GRIPPERDOT1" + splitter2.GRIPPER.GRIPPERDOT1.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT1.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT1.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.GRIPPERDOT2.Name = "GRIPPERDOT2" + splitter2.GRIPPER.GRIPPERDOT2.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT2.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT2.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.GRIPPERDOT3.Name = "GRIPPERDOT3" + splitter2.GRIPPER.GRIPPERDOT3.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT3.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT3.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.GRIPPERDOT4.Name = "GRIPPERDOT4" + splitter2.GRIPPER.GRIPPERDOT4.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT4.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT4.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.GRIPPERDOT5.Name = "GRIPPERDOT5" + splitter2.GRIPPER.GRIPPERDOT5.SHAPEDARK.Name = "SHAPEDARK" + splitter2.GRIPPER.GRIPPERDOT5.SHAPELIGHT.Name = "SHAPELIGHT" + splitter2.GRIPPER.GRIPPERDOT5.SHAPEMIDDLE.Name = "SHAPEMIDDLE" + splitter2.GRIPPER.Name = "GRIPPER" + splitter2.Name = "splitter2" + ProgressBar.BAR.IMAGE1.Name = "IMAGE1" + ProgressBar.BAR.Name = "BAR" + ProgressBar.Box.Name = "Box" + ProgressBar.IMAGE1.Name = "IMAGE1" + ProgressBar.LABEL1.Name = "LABEL1" + ProgressBar.LABEL2.Name = "LABEL2" + ProgressBar.Name = "ProgressBar" + comboSearchExpressionHistoryDropDownArrow.Name = "comboSearchExpressionHistoryDropDownArrow" + timerShowAdvancedForm.Name = "timerShowAdvancedForm" + imgScopeIcon.Name = "imgScopeIcon" + ButtonContainer.chkLimitToProjectFolder.Alignment = 0 + ButtonContainer.chkLimitToProjectFolder.Name = "chkLimitToProjectFolder" + ButtonContainer.chkMatchWholeWord.Alignment = 0 + ButtonContainer.chkMatchWholeWord.Name = "chkMatchWholeWord" + ButtonContainer.chkSubdirectories.Alignment = 0 + ButtonContainer.chkSubdirectories.Name = "chkSubdirectories" + ButtonContainer.cmdAdvanced.Name = "cmdAdvanced" + ButtonContainer.cmdHelp.Name = "cmdHelp" + ButtonContainer.cmdOptions.Name = "cmdOptions" + ButtonContainer.cmdRegexpHelp.Name = "cmdRegexpHelp" + ButtonContainer.cmdSearch.Name = "cmdSearch" + ButtonContainer.comboViewPosition.Name = "comboViewPosition" + ButtonContainer.COMMAND1.Name = "COMMAND1" + ButtonContainer.CONTAINER1.CHKAPPLYFILTER.Alignment = 0 + ButtonContainer.CONTAINER1.CHKAPPLYFILTER.Name = "CHKAPPLYFILTER" + ButtonContainer.CONTAINER1.Name = "CONTAINER1" + ButtonContainer.Container2.CHKAPPLYFILTER.Alignment = 0 + ButtonContainer.Container2.CHKAPPLYFILTER.Name = "CHKAPPLYFILTER" + ButtonContainer.Container2.Name = "Container2" + ButtonContainer.Container3.CHKAPPLYFILTER.Alignment = 0 + ButtonContainer.Container3.CHKAPPLYFILTER.Name = "CHKAPPLYFILTER" + ButtonContainer.Container3.Name = "Container3" + ButtonContainer.lblCodeView.Name = "lblCodeView" + ButtonContainer.lblSearchTime.Name = "lblSearchTime" + ButtonContainer.Name = "ButtonContainer" + * + +ENDDEFINE diff --git a/Source/Forms/gofish_results_desktop.sc2 b/Source/Forms/gofish_results_desktop.sc2 new file mode 100644 index 0000000..91f526d --- /dev/null +++ b/Source/Forms/gofish_results_desktop.sc2 @@ -0,0 +1,11 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_results_desktop.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="gf_resultsform1" Baseclass="form" /> + +* \ No newline at end of file diff --git a/Source/Forms/gofish_results_desktop.sct b/Source/Forms/gofish_results_desktop.sct new file mode 100644 index 0000000..26c61cb Binary files /dev/null and b/Source/Forms/gofish_results_desktop.sct differ diff --git a/Source/Lib/Not_Used/gf_peme_basetools.vcx b/Source/Forms/gofish_results_desktop.scx similarity index 64% rename from Source/Lib/Not_Used/gf_peme_basetools.vcx rename to Source/Forms/gofish_results_desktop.scx index f85dbae..e056d95 100644 Binary files a/Source/Lib/Not_Used/gf_peme_basetools.vcx and b/Source/Forms/gofish_results_desktop.scx differ diff --git a/Source/Forms/gofish_searchhistory.SCT b/Source/Forms/gofish_searchhistory.SCT index 4fda410..60697b5 100644 Binary files a/Source/Forms/gofish_searchhistory.SCT and b/Source/Forms/gofish_searchhistory.SCT differ diff --git a/Source/Forms/gofish_searchhistory.dataenvironment.sc2 b/Source/Forms/gofish_searchhistory.dataenvironment.sc2 new file mode 100644 index 0000000..91d8645 --- /dev/null +++ b/Source/Forms/gofish_searchhistory.dataenvironment.sc2 @@ -0,0 +1,19 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_searchhistory.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> + + * + DataSource = .NULL. + Height = 0 + Left = 0 + Name = "Dataenvironment" + Top = 0 + Width = 0 + * + +ENDDEFINE diff --git a/Source/Forms/gofish_searchhistory.form1.sc2 b/Source/Forms/gofish_searchhistory.form1.sc2 new file mode 100644 index 0000000..25c471f --- /dev/null +++ b/Source/Forms/gofish_searchhistory.form1.sc2 @@ -0,0 +1,376 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_searchhistory.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS form1 AS gf_baseform OF "..\lib\gofishui.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Grid1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Grid1.Column1.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Grid1.Column1.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Grid1.Column2.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Grid1.Column2.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Grid1.Column3.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Grid1.Column3.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Grid1.Column4.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Grid1.Column4.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cmdLoadResults" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Command1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cmdDelete" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label2" UniqueID="" Timestamp="" /> + + * + *m: setfilter + *m: sorton + *p: cuni + * + + * + Caption = "Load search results from search history." + cuisettingsfile = GF_Search_History_Form_Settings.xml + cuni = + DoCreate = .T. + Height = 391 + Left = 0 + Name = "Form1" + ShowTips = .T. + Top = 0 + Width = 748 + WindowType = 1 + _memberdata = + + + + + * + + ADD OBJECT 'Check1' AS checkbox WITH ; + Alignment = 1, ; + AutoSize = .T., ; + Caption = "Filter by current scope:", ; + ControlSource = "Thisform.oForm.oSearchOptions.lFilterHistoryByScope", ; + FontBold = .T., ; + Height = 17, ; + Left = 35, ; + Name = "Check1", ; + Top = 4, ; + Width = 148 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'cmdDelete' AS commandbutton WITH ; + Anchor = 132, ; + Caption = "Delete", ; + ForeColor = 255,0,0, ; + Height = 25, ; + Left = 315, ; + Name = "cmdDelete", ; + SpecialEffect = 0, ; + TabIndex = 4, ; + ToolTipText = "Erase highlighted search", ; + Top = 360, ; + Width = 109 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'cmdLoadResults' AS commandbutton WITH ; + Anchor = 6, ; + Caption = "Load results", ; + Default = .T., ; + Height = 25, ; + Left = 7, ; + Name = "cmdLoadResults", ; + TabIndex = 3, ; + ToolTipText = "Restore current row; same as DblClick.", ; + Top = 360, ; + Width = 109 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'Command1' AS commandbutton WITH ; + Anchor = 12, ; + Caption = " Open Folder", ; + Height = 25, ; + Left = 622, ; + Name = "Command1", ; + Picture = ..\images\browsefolder.bmp, ; + PicturePosition = 1, ; + SpecialEffect = 0, ; + TabIndex = 5, ; + ToolTipText = "Open Explorer window to path for folder for all search results", ; + Top = 360, ; + Width = 118 + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'Grid1' AS grid WITH ; + AllowCellSelection = .F., ; + Anchor = 15, ; + ColumnCount = 4, ; + DeleteMark = .F., ; + Height = 324, ; + HighlightBackColor = 0,0,160, ; + HighlightStyle = 2, ; + Left = 6, ; + Name = "Grid1", ; + Panel = 1, ; + ReadOnly = .T., ; + RecordMark = .F., ; + RecordSource = "gf_SearchHistory", ; + ScrollBars = 2, ; + TabIndex = 2, ; + Top = 24, ; + Width = 734, ; + Column1.ControlSource = "tDateTime", ; + Column1.Name = "Column1", ; + Column1.ReadOnly = .T., ; + Column1.Width = 147, ; + Column2.ControlSource = "Search", ; + Column2.Name = "Column2", ; + Column2.ReadOnly = .F., ; + Column2.Width = 165, ; + Column3.ControlSource = "Results", ; + Column3.Name = "Column3", ; + Column3.ReadOnly = .T., ; + Column4.ControlSource = "Scope", ; + Column4.Name = "Column4", ; + Column4.ReadOnly = .T., ; + Column4.Width = 1000 + *< END OBJECT: BaseClass="grid" /> + + ADD OBJECT 'Grid1.Column1.Header1' AS header WITH ; + Caption = "Date", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'Grid1.Column1.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Grid1.Column2.Header1' AS header WITH ; + Caption = "Search expression", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'Grid1.Column2.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .F. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Grid1.Column3.Header1' AS header WITH ; + Caption = "Results", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'Grid1.Column3.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Grid1.Column4.Header1' AS header WITH ; + Caption = "Scope", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'Grid1.Column4.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Label2' AS label WITH ; + Anchor = 10, ; + Caption = "--- filled with current scope ---", ; + FontBold = .F., ; + FontItalic = .T., ; + Height = 17, ; + Left = 202, ; + Name = "Label2", ; + TabIndex = 4, ; + Top = 5, ; + Width = 539 + *< END OBJECT: BaseClass="label" /> + + PROCEDURE Init + Lparameters; + toForm,; + tcScope + + Local; + lnAnchor1 As Number,; + lnAnchor2 As Number + + DoDefault(@toForm) + + If !Empty(m.tcScope) Then + This.Caption = This.Caption + ' (' + m.tcScope + ')' + Endif &&!Empty(m.tcScope) + + Thisform.SetFilter() + Thisform.Grid1.SetFocus() + + ENDPROC + + PROCEDURE KeyPress + LPARAMETERS nKeyCode, nShiftAltCtrl + + If nKeyCOde = 27 + Thisform.Release() + Endif + + ENDPROC + + PROCEDURE Load + If !Used('gf_SearchHistory') + Messagebox("Search history cursor is not present.", 0, "Error:") + Return 0 + Endif + + Set Filter To ! Deleted() In gf_SearchHistory + + Return DoDefault() + + ENDPROC + + PROCEDURE setfilter + Select gf_SearchHistory + If Thisform.oForm.oSearchOptions.lFilterHistoryByScope + Set Filter to Trim(Lower(Thisform.oForm.oSearchOptions.cRecentScope)) == Trim(Lower(Scope)) + Else + Set Filter to + EndIf + Goto top + + ENDPROC + + PROCEDURE sorton + Lparameters lcField + + Select gf_SearchHistory + Delete Tag All + + This.oForm.oSearchOptions.cSearchHistorySort = m.lcField + If Empty(m.lcField) + Index On TDatetime Descending Tag DisplayOrd + Else + Index On &lcField Tag DisplayOrd + Endif + + Set Order To DisplayOrd + Goto Top + + This.Grid1.SetFocus() + This.Grid1.Refresh() + + + + ENDPROC + + PROCEDURE Unload + Return Alltrim(Thisform.cUni) + + ENDPROC + + PROCEDURE Check1.Valid + Thisform.SetFilter() + Thisform.Grid1.SetFocus() + + ENDPROC + + PROCEDURE cmdDelete.Click + Local; + lcUni As String,; + lnSelect As Number + + lnSelect = Select() + + Select gf_SearchHistory + lcUni = Alltrim(cUni) + Delete + + Thisform.oForm.DeleteSearchResults(m.lcUni, .F., .F., .F., .F., .F.) + + lnSelect = Select() + + Thisform.Grid1.Refresh + + ENDPROC + + PROCEDURE cmdDelete.Refresh + This.Enabled = !Eof("gf_SearchHistory") + + ENDPROC + + PROCEDURE cmdLoadResults.Click + Thisform.cUni = Alltrim(gf_SearchHistory.cUni) + + Thisform.Release() + ENDPROC + + PROCEDURE cmdLoadResults.Refresh + This.Enabled = !Empty(gf_SearchHistory.cUni) + ENDPROC + + PROCEDURE Command1.Click + Local lcPath + + lcPath = Addbs(Thisform.oForm.cCR_StoreLocal + Thisform.oForm.cSavedSearchResultsFolder) + + GF_OpenExplorerWindow(m.lcPath) + + ENDPROC + + PROCEDURE Grid1.Column1.Header1.Click + ThisForm.SortOn('') && Default + + ENDPROC + + PROCEDURE Grid1.Column2.Header1.Click + ThisForm.SortOn('Upper(Search)') + + ENDPROC + + PROCEDURE Grid1.Column3.Header1.Click + ThisForm.SortOn('Val(Results)') + + ENDPROC + + PROCEDURE Grid1.Column4.Header1.Click + ThisForm.SortOn('Padr(Upper(Scope), 200)') + + ENDPROC + + PROCEDURE Grid1.DblClick + Thisform.cmdLoadResults.Click() + ENDPROC + + PROCEDURE Grid1.KeyPress + Lparameters tnKeyCode, tnShiftAltCtrl + + If m.tnKeyCode=13 Then + Thisform.cmdLoadResults.Click() + Endif &&m.tnKeyCode=13 + + ENDPROC + + PROCEDURE Label2.Refresh + This.Caption = '(' + Thisform.oForm.oSearchOptions.cRecentScope + ')' + ENDPROC + +ENDDEFINE diff --git a/Source/Forms/gofish_searchhistory.sc2 b/Source/Forms/gofish_searchhistory.sc2 index 449c3a1..ac440e0 100644 --- a/Source/Forms/gofish_searchhistory.sc2 +++ b/Source/Forms/gofish_searchhistory.sc2 @@ -1,294 +1,11 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_searchhistory.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -DEFINE CLASS dataenvironment AS dataenvironment - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> - - DataSource = .NULL. - Height = 0 - Left = 0 - Name = "Dataenvironment" - Top = 0 - Width = 0 - -ENDDEFINE - -DEFINE CLASS form1 AS gf_baseform OF "..\lib\gofishui.vcx" - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="Grid1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Grid1.Column1.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Grid1.Column1.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Grid1.Column2.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Grid1.Column2.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Grid1.Column3.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Grid1.Column3.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Grid1.Column4.Header1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Grid1.Column4.Text1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cmdLoadResults" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cmdCancel" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="Command1" UniqueID="" Timestamp="" /> - *< OBJECTDATA: ObjPath="cmdDelete" UniqueID="" Timestamp="" /> - - * - *p: cfolder - * - - Caption = "Load search results from search history." - cfolder = - cuisettingsfile = GF_Search_History_Form_Settings.xml - DoCreate = .T. - Height = 391 - Left = 0 - Name = "FORM1" - ShowTips = .T. - Top = 0 - Width = 748 - WindowType = 1 - _memberdata = - - - - ADD OBJECT 'cmdCancel' AS commandbutton WITH ; - Anchor = 12, ; - Caption = "Cancel", ; - Height = 25, ; - Left = 626, ; - Name = "cmdCancel", ; - TabIndex = 2, ; - Top = 360, ; - Width = 100 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'cmdDelete' AS commandbutton WITH ; - Anchor = 4, ; - Caption = "Delete", ; - Height = 25, ; - Left = 138, ; - Name = "cmdDelete", ; - SpecialEffect = 0, ; - ToolTipText = "Erase highlighted search", ; - Top = 360, ; - Width = 109 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'cmdLoadResults' AS commandbutton WITH ; - Anchor = 6, ; - Caption = "Load results", ; - Height = 25, ; - Left = 7, ; - Name = "cmdLoadResults", ; - TabIndex = 1, ; - Top = 360, ; - Width = 109 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'Command1' AS commandbutton WITH ; - Anchor = 12, ; - Caption = " Open Folder", ; - Height = 25, ; - Left = 486, ; - Name = "Command1", ; - Picture = ..\images\browsefolder.bmp, ; - PicturePosition = 1, ; - SpecialEffect = 0, ; - ToolTipText = "Open Explorer window to this path.", ; - Top = 360, ; - Width = 118 - *< END OBJECT: BaseClass="commandbutton" /> - - ADD OBJECT 'Grid1' AS grid WITH ; - AllowCellSelection = .F., ; - Anchor = 15, ; - ColumnCount = 4, ; - DeleteMark = .F., ; - Height = 324, ; - HighlightBackColor = 0,0,160, ; - HighlightStyle = 2, ; - Left = 6, ; - Name = "Grid1", ; - Panel = 1, ; - ReadOnly = .T., ; - RecordMark = .F., ; - RecordSource = "gf_SearchHistory", ; - ScrollBars = 2, ; - TabIndex = 3, ; - Top = 24, ; - Width = 734, ; - Column1.ControlSource = "", ; - Column1.Name = "Column1", ; - Column1.ReadOnly = .T., ; - Column1.Width = 147, ; - Column2.ControlSource = "", ; - Column2.Name = "Column2", ; - Column2.ReadOnly = .T., ; - Column2.Width = 165, ; - Column3.ControlSource = "", ; - Column3.Name = "Column3", ; - Column3.ReadOnly = .T., ; - Column4.ControlSource = "", ; - Column4.Name = "Column4", ; - Column4.ReadOnly = .T., ; - Column4.Width = 1000 - *< END OBJECT: BaseClass="grid" /> - - ADD OBJECT 'Grid1.Column1.Header1' AS header WITH ; - Caption = "Date", ; - Name = "Header1" - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'Grid1.Column1.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'Grid1.Column2.Header1' AS header WITH ; - Caption = "Search expression", ; - Name = "Header1" - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'Grid1.Column2.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'Grid1.Column3.Header1' AS header WITH ; - Caption = "Results", ; - Name = "Header1" - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'Grid1.Column3.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'Grid1.Column4.Header1' AS header WITH ; - Caption = "Scope", ; - Name = "Header1" - *< END OBJECT: BaseClass="header" /> - - ADD OBJECT 'Grid1.Column4.Text1' AS textbox WITH ; - BackColor = 255,255,255, ; - BorderStyle = 0, ; - ForeColor = 0,0,0, ; - Margin = 0, ; - Name = "Text1", ; - ReadOnly = .T. - *< END OBJECT: BaseClass="textbox" /> - - ADD OBJECT 'Label1' AS label WITH ; - Caption = "Choose historical search to restore", ; - FontBold = .T., ; - Height = 17, ; - Left = 8, ; - Name = "Label1", ; - TabIndex = 4, ; - Top = 5, ; - Width = 524 - *< END OBJECT: BaseClass="label" /> - - PROCEDURE KeyPress - LPARAMETERS nKeyCode, nShiftAltCtrl - - If nKeyCOde = 27 - Thisform.Release() - Endif - - ENDPROC - - PROCEDURE Load - If !Used('gf_SearchHistory') - MessageBox("Search history cursor is not present.", 0, "Error:") - Return 0 - EndIf - - Set Filter to ! Deleted() in gf_SearchHistory - - ENDPROC - - PROCEDURE Unload - Return Alltrim(Thisform.cFolder) - - ENDPROC - - PROCEDURE cmdCancel.Click - Thisform.cFolder = "" - Thisform.Release() - ENDPROC - - PROCEDURE cmdDelete.Click - Local lcPath, lnResponse - - lcPath = Alltrim(gf_SearchHistory.SearchHistoryFolder) - - If Empty(lcPath) - Messagebox("gf_SearchHistory.SearchHistoryFolder value is an empty String. Cannot delete. No action will be taken.", 16, "Cannot delete...") - Return - Endif - - lnResponse = Messagebox("Are you sure you want to delete folder: " + Chr(13) + Chr(13) + lcPath, 3 + 32 , "Confirm delete operation...") - - If lnResponse != 6 - Return - Endif - - If RemoveFolder(m.lcPath) - Delete In gf_SearchHistory - Else - Messagebox('Unable to delete folder "' + m.lcPath + '"', 16, 'Unable to delete folder') - Endif - - Thisform.Grid1.SetFocus() - Thisform.Refresh() - - ENDPROC - - PROCEDURE cmdDelete.Refresh - This.Enabled = !Empty(gf_SearchHistory.SearchHistoryFolder) - ENDPROC - - PROCEDURE cmdLoadResults.Click - Thisform.cFolder = Alltrim(gf_SearchHistory.SearchHistoryFolder) - - Thisform.Release() - ENDPROC - - PROCEDURE cmdLoadResults.Refresh - This.Enabled = !Empty(gf_SearchHistory.SearchHistoryFolder) - ENDPROC - - PROCEDURE Command1.Click - Local lcFolder, lcPath - - lcPath = Alltrim(gf_SearchHistory.SearchHistoryFolder) - - OpenExplorerWindow(lcPath) - ENDPROC - - PROCEDURE Command1.Refresh - This.Enabled = !Empty(gf_SearchHistory.SearchHistoryFolder) - ENDPROC - - PROCEDURE Grid1.DblClick - Thisform.cmdLoadResults.Click() - ENDPROC - -ENDDEFINE +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish_searchhistory.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="dataenvironment" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="form1" Baseclass="form" /> + +* \ No newline at end of file diff --git a/Source/Forms/gofish_searchhistory.scx b/Source/Forms/gofish_searchhistory.scx index ae89465..c7e630f 100644 Binary files a/Source/Forms/gofish_searchhistory.scx and b/Source/Forms/gofish_searchhistory.scx differ diff --git a/Source/GOFISH5.PJX.LOG b/Source/GOFISH5.PJX.LOG deleted file mode 100644 index 08780ea..0000000 --- a/Source/GOFISH5.PJX.LOG +++ /dev/null @@ -1,467 +0,0 @@ -**************************************************************************************************** -FoxBin2Prg INIT - 2021-03-24T22:14:38 -**************************************************************************************************** -FoxBin2Prg: [H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.FXP] (EXE Version: v1.19.51, FoxPro Version: 09.00.0000.7423) -- Internal CFG: / External CFG: / CodePage Used: 1252) - -> READING CFG VALUES FROM DISK: - Using configuration file: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG - FOXBIN2PRG.CFG > tcDontShowErrors: 0 - FOXBIN2PRG.CFG > tcDebug: 1 - -**************************************************************************************************** -MAIN EXECUTION 2021-03-24T22:14:38 -**************************************************************************************************** -> EXTERNAL PARAMETERS: - tc_InputFile: H:\WORK\REPOS\GOFISH\SOURCE\GOFISH5.PJX - tcType: * - tcTextName: (empty) - tlGenText: (empty) - tcDontShowErrors: (empty) -> Will use Default [.T.] - tcDebug: (empty) -> Will use Default [1] - tcDontShowProgress: (empty) -> Will use Default [1] - tlRelanzarError: (empty) - tcOriginalFileName: (empty) -> Will use Default [] - tcRecompile: H:\WORK\REPOS\GOFISH\SOURCE - tcNoTimestamps: (empty) -> Will use Default [.T.] - tcBackupLevels: (empty) -> Will use Default [1] - tcClearUniqueID: (empty) -> Will use Default [.T.] - tcOptimizeByFilestamp: (empty) -> Will use Default [0] - -> CACHING CONFIG FOR DIRECTORY: H:\ - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> CACHING CONFIG FOR DIRECTORY: H:\WORK - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> CACHING CONFIG FOR DIRECTORY: H:\WORK\REPOS - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> CACHING CONFIG FOR DIRECTORY: H:\WORK\REPOS\GOFISH - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> CACHING CONFIG FOR DIRECTORY: H:\WORK\REPOS\GOFISH\SOURCE - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> USING THIS SETTINGS: - n_CFG_Actual: 6 [SECONDARY] - l_CFG_CachedAccess: .T. - tc_InputFile: H:\WORK\REPOS\GOFISH\SOURCE\GOFISH5.PJX - c_Foxbin2prg_ConfigFile: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG - n_ShowProgressbar: 1 - l_ShowErrors: .T. - l_Recompile: .T. (H:\WORK\REPOS\GOFISH\SOURCE) - l_NoTimestamps: .T. - l_ClearUniqueID: .T. - n_UseClassPerFile: 0 - l_ClassPerFileCheck: .F. - l_RedirectClassPerFileToMain: .F. - n_RedirectClassType: 0 - n_Debug: 1 - n_ExtraBackupLevels: 1 - c_BackgroundImage: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\foxbin2prg.jpg - n_OptimizeByFilestamp: 0 - n_ExcludeDBFAutoincNextval: 0 - l_RemoveNullCharsFromCode: .T. - l_RemoveZOrderSetFromProps: .F. - l_ClearDBFLastUpdate: .T. - c_Language: EN - -> Convert all files in a Project: Binary to Text -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:38 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\GoFish5.pjx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\GoFish5.pjx - - * Names capitalization program [H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\filename_caps.exe] found - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\GoFish5.PJ2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\GoFish5.PJ2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\GoFish5.PJ2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:38 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\ -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH\SOURCE -> CACHING CONFIG FOR DIRECTORY: H:\WORK\REPOS\GOFISH\SOURCE\FORMS - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> USING THIS SETTINGS: - n_CFG_Actual: 7 [SECONDARY] - l_CFG_CachedAccess: .T. - tc_InputFile: H:\Work\Repos\GoFish\Source\Forms\gofish_results.scx - c_Foxbin2prg_ConfigFile: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG - n_ShowProgressbar: 1 - l_ShowErrors: .T. - l_Recompile: .T. (H:\WORK\REPOS\GOFISH\SOURCE) - l_NoTimestamps: .T. - l_ClearUniqueID: .T. - n_UseClassPerFile: 0 - l_ClassPerFileCheck: .F. - l_RedirectClassPerFileToMain: .F. - n_RedirectClassType: 0 - n_Debug: 1 - n_ExtraBackupLevels: 1 - c_BackgroundImage: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\foxbin2prg.jpg - n_OptimizeByFilestamp: 0 - n_ExcludeDBFAutoincNextval: 0 - l_RemoveNullCharsFromCode: .T. - l_RemoveZOrderSetFromProps: .F. - l_ClearDBFLastUpdate: .T. - c_Language: EN - - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gofish_results.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_results.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gofish_results.SC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Forms\gofish_results.SC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:39 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Forms\gofish_filter.scx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gofish_filter.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_filter.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gofish_filter.SC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Forms\gofish_filter.SC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:39 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\ -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH\SOURCE -> CACHING CONFIG FOR DIRECTORY: H:\WORK\REPOS\GOFISH\SOURCE\LIB - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> USING THIS SETTINGS: - n_CFG_Actual: 8 [SECONDARY] - l_CFG_CachedAccess: .T. - tc_InputFile: H:\Work\Repos\GoFish\Source\Lib\gofishui.vcx - c_Foxbin2prg_ConfigFile: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG - n_ShowProgressbar: 1 - l_ShowErrors: .T. - l_Recompile: .T. (H:\WORK\REPOS\GOFISH\SOURCE) - l_NoTimestamps: .T. - l_ClearUniqueID: .T. - n_UseClassPerFile: 0 - l_ClassPerFileCheck: .F. - l_RedirectClassPerFileToMain: .F. - n_RedirectClassType: 0 - n_Debug: 1 - n_ExtraBackupLevels: 1 - c_BackgroundImage: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\foxbin2prg.jpg - n_OptimizeByFilestamp: 0 - n_ExcludeDBFAutoincNextval: 0 - l_RemoveNullCharsFromCode: .T. - l_RemoveZOrderSetFromProps: .F. - l_ClearDBFLastUpdate: .T. - c_Language: EN - - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Lib\gofishui.vcx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Lib\gofishui.VC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Lib\gofishui.VC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Lib\gofishui.VC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:40 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Lib\sfsplitter.vcx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Lib\sfsplitter.vcx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Lib\sfsplitter.VC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Lib\sfsplitter.VC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Lib\sfsplitter.VC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:40 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\ -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH\SOURCE -> CACHING CONFIG FOR DIRECTORY: H:\WORK\REPOS\GOFISH\SOURCE\PRG - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> USING THIS SETTINGS: - n_CFG_Actual: 9 [SECONDARY] - l_CFG_CachedAccess: .T. - tc_InputFile: H:\Work\Repos\GoFish\Source\Prg\words.dbf - c_Foxbin2prg_ConfigFile: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG - n_ShowProgressbar: 1 - l_ShowErrors: .T. - l_Recompile: .T. (H:\WORK\REPOS\GOFISH\SOURCE) - l_NoTimestamps: .T. - l_ClearUniqueID: .T. - n_UseClassPerFile: 0 - l_ClassPerFileCheck: .F. - l_RedirectClassPerFileToMain: .F. - n_RedirectClassType: 0 - n_Debug: 1 - n_ExtraBackupLevels: 1 - c_BackgroundImage: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\foxbin2prg.jpg - n_OptimizeByFilestamp: 0 - n_ExcludeDBFAutoincNextval: 0 - l_RemoveNullCharsFromCode: .T. - l_RemoveZOrderSetFromProps: .F. - l_ClearDBFLastUpdate: .T. - c_Language: EN - - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Prg\words.dbf - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Prg\words.DB2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Prg\words.DB2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Prg\words.DB2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:40 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\ -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH\SOURCE -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH\SOURCE\LIB -> CACHING CONFIG FOR DIRECTORY: H:\WORK\REPOS\GOFISH\SOURCE\LIB\VFP - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> CACHING CONFIG FOR DIRECTORY: H:\WORK\REPOS\GOFISH\SOURCE\LIB\VFP\MY - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> USING THIS SETTINGS: - n_CFG_Actual: 11 [SECONDARY] - l_CFG_CachedAccess: .T. - tc_InputFile: H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.dbf - c_Foxbin2prg_ConfigFile: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG - n_ShowProgressbar: 1 - l_ShowErrors: .T. - l_Recompile: .T. (H:\WORK\REPOS\GOFISH\SOURCE) - l_NoTimestamps: .T. - l_ClearUniqueID: .T. - n_UseClassPerFile: 0 - l_ClassPerFileCheck: .F. - l_RedirectClassPerFileToMain: .F. - n_RedirectClassType: 0 - n_Debug: 1 - n_ExtraBackupLevels: 1 - c_BackgroundImage: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\foxbin2prg.jpg - n_OptimizeByFilestamp: 0 - n_ExcludeDBFAutoincNextval: 0 - l_RemoveNullCharsFromCode: .T. - l_RemoveZOrderSetFromProps: .F. - l_ClearDBFLastUpdate: .T. - c_Language: EN - - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.dbf - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.DB2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.DB2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.DB2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:40 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Lib\gofishwebtools.vcx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Lib\gofishwebtools.vcx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Lib\gofishwebtools.VC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Lib\gofishwebtools.VC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Lib\gofishwebtools.VC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:40 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Forms\gofish_options.scx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gofish_options.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_options.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - Doing Backup of: H:\Work\Repos\GoFish\Source\Forms\gofish_options.SC2 - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_options.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gofish_options.SC2... - - File: H:\Work\Repos\GoFish\Source\Forms\gofish_options.SC2 (52.57/52.57 KiB) - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:41 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Forms\gofish_advanced.scx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gofish_advanced.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_advanced.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gofish_advanced.SC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Forms\gofish_advanced.SC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:41 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Forms\gofish_about.scx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gofish_about.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_about.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gofish_about.SC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Forms\gofish_about.SC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:41 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\ -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH\SOURCE -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH\SOURCE\LIB -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\WORK\REPOS\GOFISH\SOURCE\LIB\VFP -> CACHING CONFIG FOR DIRECTORY: H:\WORK\REPOS\GOFISH\SOURCE\LIB\VFP\FFC - - Inheriting from: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG -> USING THIS SETTINGS: - n_CFG_Actual: 12 [SECONDARY] - l_CFG_CachedAccess: .T. - tc_InputFile: H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_base.vcx - c_Foxbin2prg_ConfigFile: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG - n_ShowProgressbar: 1 - l_ShowErrors: .T. - l_Recompile: .T. (H:\WORK\REPOS\GOFISH\SOURCE) - l_NoTimestamps: .T. - l_ClearUniqueID: .T. - n_UseClassPerFile: 0 - l_ClassPerFileCheck: .F. - l_RedirectClassPerFileToMain: .F. - n_RedirectClassType: 0 - n_Debug: 1 - n_ExtraBackupLevels: 1 - c_BackgroundImage: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\foxbin2prg.jpg - n_OptimizeByFilestamp: 0 - n_ExcludeDBFAutoincNextval: 0 - l_RemoveNullCharsFromCode: .T. - l_RemoveZOrderSetFromProps: .F. - l_ClearDBFLastUpdate: .T. - c_Language: EN - - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_base.vcx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_base.VC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_base.VC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_base.VC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:42 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_environ.vcx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_environ.vcx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_environ.VC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_environ.VC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_environ.VC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:42 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.vcx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.vcx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.VC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.VC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Lib\VFP\My\my.VC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:42 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Forms\gofish_advaccedreplacehelp.scx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gofish_advaccedreplacehelp.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_advaccedreplacehelp.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gofish_advaccedreplacehelp.SC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Forms\gofish_advaccedreplacehelp.SC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:42 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_frxcursor.vcx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_frxcursor.vcx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_frxcursor.VC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_frxcursor.VC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Lib\VFP\FFC\_frxcursor.VC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:43 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Forms\gofish_searchhistory.scx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gofish_searchhistory.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_searchhistory.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gofish_searchhistory.SC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Forms\gofish_searchhistory.SC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:43 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Forms\gofish_filterpf.scx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gofish_filterpf.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_filterpf.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gofish_filterpf.SC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Forms\gofish_filterpf.SC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:43 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Forms\gf_collection_explorer.scx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gf_collection_explorer.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gf_collection_explorer.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gf_collection_explorer.SC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Forms\gf_collection_explorer.SC2] was not overwritten because it is the same as the existing one. - - -**************************************************************************************************** -CONVERSION PROCESS 2021-03-24T22:14:43 -**************************************************************************************************** -> USING THIS SETTINGS: H:\WORK\UTIL\THOR\THOR\TOOLS\COMPONENTS\FOXBIN2PRG\FOXBIN2PRG.CFG => H:\Work\Repos\GoFish\Source\Forms\gofish_extendsearch.scx - c_OriginalFileName: H:\Work\Repos\GoFish\Source\Forms\gofish_extendsearch.scx - - c_foxbin2prg.changefileattribute >> [H:\Work\Repos\GoFish\Source\Forms\gofish_extendsearch.SC2] lnRet = 1, dwFileAttributes_Orig = 32 - - Converting file H:\Work\Repos\GoFish\Source\Forms\gofish_extendsearch.SC2... - * Optimization: output file [H:\Work\Repos\GoFish\Source\Forms\gofish_extendsearch.SC2] was not overwritten because it is the same as the existing one. - - -FoxBin2Prg UNLOAD - 2021-03-24T22:14:43 -**************************************************************************************************** - - diff --git a/Source/GoFish5.APP b/Source/GoFish.APP similarity index 54% rename from Source/GoFish5.APP rename to Source/GoFish.APP index 64df232..0ac3e39 100644 Binary files a/Source/GoFish5.APP and b/Source/GoFish.APP differ diff --git a/Source/GoFish5.pj2 b/Source/GoFish.pj2 similarity index 83% rename from Source/GoFish5.pj2 rename to Source/GoFish.pj2 index caaafa9..4fdb389 100644 --- a/Source/GoFish5.pj2 +++ b/Source/GoFish.pj2 @@ -1,212 +1,224 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofish5.pjx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -LPARAMETERS tcDir - -lcCurdir = SYS(5)+CURDIR() -CD ( EVL( tcDir, JUSTPATH( SYS(16) ) ) ) - -* -_Author = "Matt Slay / Peter Diotte" -_Company = "" -_Address = "" -_City = "" -_State = "" -_PostalCode = "" -_Country = "USA" -*-- -_Comments = "" -_CompanyName = "" -_FileDescription = "" -_LegalCopyright = "" -_LegalTrademark = "" -_ProductName = "" -_MajorVer = "" -_MinorVer = "" -_Revision = "" -_LanguageID = "" -_AutoIncrement = "0" -* - - -* -_LibraryName = 'C:\temp\x1.exe' -_InternalName = 'aa1' -_ProjectName = 'aa1' -_TypeLibDesc = 'aa1 Type Library' -_ServerType = ' 69' -_TypeLib = '{D3A253A8-281D-4C92-A329-25FF0111AAAB}' -* -* -_HelpContextID = '0' -_ServerName = 'aa1.htmlcode' -_Description = 'aa1.htmlcode' -_HelpFile = '' -_ServerClass = 'htmlcode' -_ClassLibrary = 'c:\visual foxpro\programs\gofish all versions\gofish5\source\prg\mhhtmlcode.prg' -_Instancing = '1' -_CLSID = '{A9EA643C-A16F-4E02-B68B-37C3CE877106}' -_Interface = '{2A143BCB-9F65-4E7E-9C30-8E0955A38E8E}' -* - -* -*<.HomeDir = 'h:\work\repos\gofish\source' /> - -FOR EACH loProject IN _VFP.Projects FOXOBJECT - loProject.Close() -ENDFOR - -STRTOFILE( '', '__newproject.f2b' ) -BUILD PROJECT GoFish5.pjx FROM '__newproject.f2b' -FOR EACH loProject IN _VFP.Projects FOXOBJECT - loProject.Close() -ENDFOR - -MODIFY PROJECT 'GoFish5.pjx' NOWAIT NOSHOW NOPROJECTHOOK - -loProject = _VFP.Projects('GoFish5.pjx') - -WITH loProject.FILES - .ADD('..\readme.md') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('_gofishversionfile.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('buildgofish.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('buildgofish.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('changelog_ver_4.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('changelog_ver_5.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('css\gofish - black.css') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('css\gofish - color.css') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('css\gofish css readme.txt') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('css\gofish.css') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('documentation\gofish 4 beta 2 update notes.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('documentation\replacegroups.xlsx') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('forms\gf_collection_explorer.scx') && *< FileMetadata: Type="K" Cpid="0" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('forms\gofish_about.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('forms\gofish_advaccedreplacehelp.scx') && *< FileMetadata: Type="K" Cpid="0" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('forms\gofish_advanced.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('forms\gofish_extendsearch.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('forms\gofish_filter.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('forms\gofish_filterpf.scx') && *< FileMetadata: Type="K" Cpid="0" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('forms\gofish_options.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('forms\gofish_results.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('forms\gofish_searchhistory.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('gofish.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('gofishversionfile.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('html\gofish.js') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\browsefolder.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\browsefolder.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\check.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\checkforupdates.jpg') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\circled.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\circled.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\circledselected.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\class.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\color2_16x16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\doc.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\errors.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\excel.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\filter.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\find.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\findcomp.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\fish13.ico') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\gf_dnarrow.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\gf_folder_icon_16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\gf_large_letter.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\gf_project_icon_16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\gf_small_letter.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\gf_uparrow.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\gofish16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\gofish_logo_transparent.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\grammariconregex.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\leftarrow.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\maximize.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\maximize.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\maximizecodeview.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\menu.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\menu2.png') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\menus.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\method.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\methods.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\minimize.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\minimizecodeview.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\obfind.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\openfold.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\progressbar.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\progressbarbackground.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\properties.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\red_circle_x_16.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\refhelp.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\refresh.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\regexprmenu.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\replacelevels.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\restore.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\restore.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\restorecodeview.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\rightarrow.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\transpvfpxlogosmall.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\vfpxpoweredby_alternative.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\yellow_exclamation_16.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\zoom-in-2-16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\zoom-in-2-16.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\zoom-in-2-16.png') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\zoom-out-2-16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\zoom-out-2-16.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('images\zoom-out-2-16.png') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('lib\gf_peme_basetools.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\gofish.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('lib\gofishsearchengine.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\gofishsearchoptions.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\gofishui.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\gofishwebtools.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\peme_basetools.h') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('lib\sfsplitter.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\vfp\ffc\_base.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\vfp\ffc\_environ.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\vfp\ffc\_frxcursor.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\vfp\ffc\setobjrf.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('lib\vfp\my\my.dbf') && *< FileMetadata: Type="D" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('lib\vfp\my\my.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('prg\gofishgeneratescc.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('prg\gofishproc.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('prg\mhhtmlcode.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('prg\words.dbf') && *< FileMetadata: Type="D" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> - .ADD('samples\gofish_formatgrid_sample.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - .ADD('samples\gofishsearchsample.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> - * - - .ITEM('__newproject.f2b').Remove() - - * - * - - * - * - - * - .ITEM(lcCurdir + 'buildgofish.h').Type = 'T' - .ITEM(lcCurdir + 'lib\gofish.h').Type = 'T' - .ITEM(lcCurdir + 'lib\peme_basetools.h').Type = 'T' - * -ENDWITH - -WITH loProject - * - .SetMain(lcCurdir + 'gofish.prg') - .Debug = .T. - .Encrypted = .F. - *<.CmntStyle = 1 /> - *<.NoLogo = .F. /> - *<.SaveCode = .T. /> - *<.User = '' /> - .ProjectHookLibrary = '' - .ProjectHookClass = '' - * -ENDWITH - - -_VFP.Projects('GoFish5.pjx').Close() -*ERASE '__newproject.f2b' -CD (lcCurdir) +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="gofish.pjx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +LPARAMETERS tcDir + +lcCurdir = SYS(5)+CURDIR() +CD ( EVL( tcDir, JUSTPATH( SYS(16) ) ) ) + +* +_Author = "Matt Slay / Peter Diotte" +_Company = "" +_Address = "" +_City = "" +_State = "" +_PostalCode = "" +_Country = "USA" +*-- +_Comments = "" +_CompanyName = "" +_FileDescription = "" +_LegalCopyright = "" +_LegalTrademark = "" +_ProductName = "" +_MajorVer = "" +_MinorVer = "" +_Revision = "" +_LanguageID = "" +_AutoIncrement = "0" +* + + +* +_LibraryName = 'C:\temp\x1.exe' +_InternalName = 'aa1' +_ProjectName = 'aa1' +_TypeLibDesc = 'aa1 Type Library' +_ServerType = ' 0' +_TypeLib = '{D3A253A8-281D-4C92-A329-25FF0111AAAB}' +* +* +_HelpContextID = '0' +_ServerName = 'aa1.htmlcode' +_Description = 'aa1.htmlcode' +_HelpFile = '' +_ServerClass = 'htmlcode' +_ClassLibrary = 'c:\visual foxpro\programs\gofish all versions\gofish5\source\prg\mhhtmlcode.prg' +_Instancing = '1' +_CLSID = '{A9EA643C-A16F-4E02-B68B-37C3CE877106}' +_Interface = '{2A143BCB-9F65-4E7E-9C30-8E0955A38E8E}' +* + +* +*<.HomeDir = 'e:\se\gofish\source' /> + +FOR EACH loProject IN _VFP.Projects FOXOBJECT + loProject.Close() +ENDFOR + +STRTOFILE( '', '__newproject.f2b' ) +BUILD PROJECT GoFish.pjx FROM '__newproject.f2b' +FOR EACH loProject IN _VFP.Projects FOXOBJECT + loProject.Close() +ENDFOR + +MODIFY PROJECT 'GoFish.pjx' NOWAIT NOSHOW NOPROJECTHOOK + +loProject = _VFP.Projects('GoFish.pjx') + +WITH loProject.FILES + .ADD('..\readme.md') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('buildgofish.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('buildgofish.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('css\gofish - black.css') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('css\gofish - color.css') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('css\gofish css readme.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('css\gofish.css') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('css\gofish_user.css') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('forms\gf_migrate_6.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('forms\gofish_about.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('forms\gofish_advaccedreplacehelp.scx') && *< FileMetadata: Type="K" Cpid="0" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('forms\gofish_advanced.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('forms\gofish_filter.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('forms\gofish_filterpf.scx') && *< FileMetadata: Type="K" Cpid="0" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('forms\gofish_options.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('forms\gofish_results.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('forms\gofish_results_desktop.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('forms\gofish_searchhistory.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('gfadvancedreplace.prg') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('gofish.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('gofishgeneratescc.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('html\gofish.js') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\browsefolder.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\browsefolder.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\check.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\checkforupdates.jpg') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\circled.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\circled.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\circledselected.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\class.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\color2_16x16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\doc.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\errors.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\excel.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\filter.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\find.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\findcomp.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\fish13.ico') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gf_dnarrow.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gf_folder_icon_16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gf_folderpick_icon_16.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gf_large_letter.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gf_project_icon_16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gf_projectpick_icon_16.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gf_small_letter.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gf_threedots.png') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gf_uparrow.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gofish16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\gofish_logo_transparent.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\grammariconregex.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\leftarrow.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\maximize.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\maximize.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\maximizecodeview.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\menu.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\menu2.png') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\menus.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\method.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\methods.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\minimize.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\minimizecodeview.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\obfind.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\openfold.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\progressbar.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\progressbarbackground.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\properties.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\red_circle_x_16.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\refhelp.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\refresh.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\regexprmenu.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\replacelevels.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\restore.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\restore.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\restorecodeview.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\rightarrow.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\transpvfpxlogosmall.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\vfpxpoweredby_alternative.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\yellow_exclamation_16.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\zoom-in-2-16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\zoom-in-2-16.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\zoom-in-2-16.png') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\zoom-out-2-16.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\zoom-out-2-16.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('images\zoom-out-2-16.png') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('lib\gf_objectexplorer.scx') && *< FileMetadata: Type="K" Cpid="0" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\gf_objectexplorer.vcx') && *< FileMetadata: Type="V" Cpid="0" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\gf_peme_basetools.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\gofish.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('lib\gofish_registry.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\gofishsearchengine.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\gofishsearchoptions.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\gofishui.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\gofishwebtools.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\peme_basetools.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('lib\sfsplitter.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\vfp\ffc\_base.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\vfp\ffc\_environ.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\vfp\ffc\_frxcursor.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\vfp\ffc\setobjrf.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('lib\vfp\my\my.dbf') && *< FileMetadata: Type="D" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('lib\vfp\my\my.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('prg\gf_dynamicform.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('prg\gf_viewrecord.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('prg\gofishproc.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('prg\mhhtmlcode.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('prg\words.dbf') && *< FileMetadata: Type="D" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" /> + .ADD('samples\gofish_formatgrid_sample.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('samples\gofishsearchsample.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('sf_regexp\sf_regexp.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + .ADD('sf_regexp\wwdotnetbridge.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" /> + * + + .ITEM('__newproject.f2b').Remove() + + * + * + + * + .ITEM("buildgofish.h").Exclude = .T. + .ITEM("buildgofish.prg").Exclude = .T. + .ITEM("gofishgeneratescc.prg").Exclude = .T. + .ITEM("lib\gofish.h").Exclude = .T. + .ITEM("sf_regexp\wwdotnetbridge.prg").Exclude = .T. + * + + * + .ITEM("buildgofish.h").Type = 'T' + .ITEM("lib\gofish.h").Type = 'T' + .ITEM("lib\peme_basetools.h").Type = 'T' + * +ENDWITH + +WITH loProject + * + .SetMain("gofish.prg") + + .Debug = .T. + .Encrypted = .F. + *<.CmntStyle = 1 /> + *<.NoLogo = .F. /> + *<.SaveCode = .T. /> + *<.User = '' /> + .ProjectHookLibrary = '' + .ProjectHookClass = '' + * +ENDWITH + + +_VFP.Projects('GoFish.pjx').Close() +*ERASE '__newproject.f2b' +CD (lcCurdir) RETURN \ No newline at end of file diff --git a/Source/GoFish.pjt b/Source/GoFish.pjt new file mode 100644 index 0000000..34ac085 Binary files /dev/null and b/Source/GoFish.pjt differ diff --git a/Source/GoFish.pjx b/Source/GoFish.pjx new file mode 100644 index 0000000..76a118e Binary files /dev/null and b/Source/GoFish.pjx differ diff --git a/Source/GoFish5.PJT b/Source/GoFish5.PJT deleted file mode 100644 index 735dd83..0000000 Binary files a/Source/GoFish5.PJT and /dev/null differ diff --git a/Source/GoFish5.pjx b/Source/GoFish5.pjx deleted file mode 100644 index 367caa1..0000000 Binary files a/Source/GoFish5.pjx and /dev/null differ diff --git a/Source/GoFishVersionFile.txt b/Source/GoFishVersionFile.txt index 003d13a..f59a7b6 100644 --- a/Source/GoFishVersionFile.txt +++ b/Source/GoFishVersionFile.txt @@ -1,3 +1 @@ -GoFish5 -GoFish5 - 5.0.170 - March 24, 2021 - 20210324 -http://bit.ly/GoFish5 \ No newline at end of file +GoFish5 - 6.2.005 -7 September 2023, - 20230907 \ No newline at end of file diff --git a/Source/HTML/GoFish.js b/Source/HTML/GoFish.js index 390d759..9536f98 100644 --- a/Source/HTML/GoFish.js +++ b/Source/HTML/GoFish.js @@ -1,25 +1,25 @@ - \ No newline at end of file diff --git a/Source/HTML/Searching.html b/Source/HTML/Searching.html index dde9764..5d41914 100644 --- a/Source/HTML/Searching.html +++ b/Source/HTML/Searching.html @@ -1,16 +1,16 @@ - - - - - - - - - - - - - - -
- Spinner Searching... 
  
+ + + + + + + + + + + + + + +
+ Spinner Searching... 
  
diff --git a/Source/Images/SAVE.BMP b/Source/Images/SAVE.BMP new file mode 100644 index 0000000..9217b49 Binary files /dev/null and b/Source/Images/SAVE.BMP differ diff --git a/Source/Images/gf_folderpick_icon_16.bmp b/Source/Images/gf_folderpick_icon_16.bmp new file mode 100644 index 0000000..7ae13f1 Binary files /dev/null and b/Source/Images/gf_folderpick_icon_16.bmp differ diff --git a/Source/Images/gf_projectpick_icon_16.bmp b/Source/Images/gf_projectpick_icon_16.bmp new file mode 100644 index 0000000..c557cf2 Binary files /dev/null and b/Source/Images/gf_projectpick_icon_16.bmp differ diff --git a/Source/Images/gf_threedots.png b/Source/Images/gf_threedots.png new file mode 100644 index 0000000..0d1950c Binary files /dev/null and b/Source/Images/gf_threedots.png differ diff --git a/Source/Lib/Not_Used/gf_peme_basetools.vct b/Source/Lib/Not_Used/gf_peme_basetools.vct deleted file mode 100644 index 4875f07..0000000 Binary files a/Source/Lib/Not_Used/gf_peme_basetools.vct and /dev/null differ diff --git a/Source/Lib/Not_Used/gofishsearchengine.vc2 b/Source/Lib/Not_Used/gofishsearchengine.vc2 deleted file mode 100644 index a754138..0000000 --- a/Source/Lib/Not_Used/gofishsearchengine.vc2 +++ /dev/null @@ -1,4908 +0,0 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="gofishsearchengine.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -DEFINE CLASS gofishsearchengine AS custom - *< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" /> - - #INCLUDE "gofish.h" - * - *m: addcolumn && Adds a Column object to a Grid control. - *m: addfieldtoreplacetable - *m: addproject - *m: assignmatchtype - *m: assignmatchtypeforprg - *m: assignmatchtypeforscxvcx - *m: backupfile - *m: builddirectoriescollection && Fill this.oDirectories collection with all folders under the current path. Recursive folder list is created. This is called by SearchInPath() to build a colecltions of folders to searhc through. - *m: buildprojectscollection - *m: changecurrentdir - *m: checkfileexttemplate - *m: checkfilenametemplate - *m: cleanupbinarystring - *m: clearreplaceerrormessage - *m: clearreplacesettings - *m: clearresultscollection - *m: clearresultscursor - *m: compile - *m: createmenudisplay - *m: createreplacedetailrecord - *m: createreplacehistoryrecord - *m: createresult - *m: createresultsrow - *m: dropcolumn - *m: editfromcurrentrow - *m: editmenufromcurrentrow - *m: editobjectfromcurrentrow - *m: endtimer - *m: escapesearchexpression - *m: extractmethodname - *m: extractobjectname - *m: filestoskip - *m: findprocedureformatch - *m: findstatement - *m: fixpropertyname - *m: generatehtmlcode - *m: getactiveproject - *m: getcurrentdirectory - *m: getdirectories - *m: getfiledatetime - *m: getfrxobjecttype - *m: getprocedurestartpositions - *m: getregexforprocedurestartpositions - *m: getregexforsearch - *m: getreplaceresultobject - *m: getreplacerisklevel - *m: highlightprocfilter - *m: htmlencode - *m: incrementprogressbar - *m: isbaseclass && Returns .t. if passed string value is a native FoxPro baseclass. - *m: iscomment && return .t. if "*" .or. "note" - *m: iscontinuation - *m: isfiletypeincluded && A method that indicates if the passed filename is to be included in the search, based on the checkbox groups on the form. - *m: isfulllinecomment - *m: istextfile && Pass in a full filename or a file extension, and it will return .t. if it is a text file, or .f. if it is a table-based file. - *m: loadoptions && Pass in XML File to load up search options. - *m: lreadytoreplace_access - *m: ltimestampdataprovided_access - *m: matchtemplate - *m: migratereplacedetailtable - *m: opentableforreplace - *m: prepareforsearch - *m: prepareregexforreplace - *m: prepareregexforsearch - *m: processinlinecomments - *m: processsearchresult - *m: reduceprogressbarmaxvalue - *m: regexreplace - *m: renamecolumn - *m: replacefromcurrentrow && This method performs a Replace operation on the current row of the passed cursor name. - *m: replaceincode - *m: replaceintable - *m: replaceintextfile - *m: replaceline - *m: replacelinewithudf - *m: replacemarkedrows && This method scans of the rows in passed cursor, and calls the ReplaceFromCurrentRow() method for each marked row. - *m: restoredefaultdir - *m: saveoptions - *m: searchfinished && Called by SearchInPath() and SearchInProject() once they are finished. This will update some class properties, end the timer, and other cleanup stuff. - *m: searchincode && Find text within text-based files like PRG,SPR,MPR, etc. - *m: searchinfile && Both ProcessProject() and ProcessPath() pass their filenames into this method to have it processed. - *m: searchinfilename - *m: searchinpath - *m: searchinproject - *m: searchintable && Performs a search on a table-based file like a VCX, SCX, FRX, etc. - *m: searchintextfile - *m: setfilestoskip - *m: setproject - *m: setreplaceerror - *m: setsearcherror - *m: showerror - *m: showwaitmessage - *m: startprogressbar - *m: starttimer - *m: stopprogressbar - *m: storeinitialdefaultdir - *m: thormovewindow - *m: timestamptodate && Handles the conversion of the FoxPro TIMESTAMP field to a readable (and understandable) date and time. By Rick Schummer. - *m: trimwhitespace - *m: updatecursorafterreplace && Updates the match position fields on remaining rows in the results cursor after a replace opertion is performed on a row. - *m: updateprogressbar - *m: updatereplacehistoryrecord - *p: cbackupprg - *p: cfilestoskip - *p: cfilestoskipfile && This files contains a list of files to be skipped during the search. One filname on each line. This list is only slipped is lSkipFiles is .t. - *p: cgraphicsextensions - *p: cinitialdefaultdir - *p: cprojects && A text list of projects that matches oProjects. Makes looking for existing projects fast than analyzing the oProjects collection. This property is only to be used by the class. Please don't touch it. - *p: creplacedetailtable && A detail record is stored here for every single match line that is replaced. - *p: creplacehistorytable && A single header record is stored here for each time the ReplaceFromMarkedRows() method is called. - *p: creplaceudfcode && Holds the code for a UDF to be used on Replace operations if nReplaceMode is the Advanced Replace mode - *p: csearchoptionsclass && The default Search Options class to be used. Can be overriden by passing a string to the Init(I method. - *p: csearchresultsalias && This is the name of the cursor where the results rows ill be stored. - *p: ctableextensions && These are the filetypes that will be handled by the SearchInTable() method. All other filetypes are assumed to be plain text files and will be handled by the SearchInTextFile() method. - *p: cversion - *p: lescpress && Indicates if the ESC key was pressed by the user during on of the lower processing loops of a Search. - *p: lfilehasbeenedited && This flag is set any time a MODIFY operation is launched from the grid. We asume they made changes to the file, requiring a new search before they can do a Replace. This prevents the REPLACE button from being available until the search is run again. - *p: lfilenotfound && Will indicate if there were any files in a ProcessProject() or ProcessPath() that were not found. You can check this flag after a search call. - *p: lreadytoreplace - *p: lresultslimitreached && Indicates if the max search results limit was reach during a search. See nMaxResults property on the Search Options class. - *p: ltimestampdataprovided - *p: nfilecount && This values indicates how many files were found to have matches in them. - *p: nfilesprocessed && This values indicates the total number of files processed that matched the file filter, whether they had matches or not. - *p: nmatchlines && How many matched lines found in the last search. Note: this counts lines that had a match, note each match. It's possible that one line could have multiple matches. - *p: nreplacecount - *p: nreplacefilecount - *p: nreplacehistoryid && Store the current ID number of the Replace History record. - *p: nreplacemode && 1= Regular replace, 2 = Advanced Replace (UDF Replace) - *p: nsearchtime && Tells how long the last search took. It is only reset by SearchInPath() or SerachInProject() took, and not by the lower level search like SearchInFile, or SearchInTextFile, or SearchInTable. - *p: nwildcardfilestoskip - *p: odirectories && Internally used by the SearcthInPath() to build a collection of directories to be searched. - *p: ofrxcursor && An FFC class used to generate a TimeStamp so the TimeStamp field can be updated when replacing code in a table based file. - *p: ofso - *p: oprogressbar - *p: oprojects && Internally created to show a collection of recently used Projects, or projects found in the current path folder. This is built so the GoFish Advanced form can allow user to choose a Project. - *p: oregexforprocedurestartpositions - *p: oregexforsearch - *p: oreplaceerrors - *p: oresults && This is a collection of match objects from the last search. Must set lCreateResultsCollection if you want this collection to be built - *p: osearcherrors && A collection of any errors that happened during the last search. - *p: osearchoptions && A object instance of the Search Options class that holds properties to controll how the search is performed. - *a: amenustartpositions[1,0] - *a: awildcardfiles[1,0] - *p: _memberdata && XML Metadata for customizable properties - * - - cbackupprg = GoFishBackup.prg - cfilestoskip = - cfilestoskipfile = ( Home(7) + 'GF_Files_To_Skip.txt') && This files contains a list of files to be skipped during the search. One filname on each line. This list is only slipped is lSkipFiles is .t. - cgraphicsextensions = PNG ICO JPG JPEG TIF TIFF GIF BMP MSK CUR ANI - cinitialdefaultdir = - cprojects = && A text list of projects that matches oProjects. Makes looking for existing projects fast than analyzing the oProjects collection. This property is only to be used by the class. Please don't touch it. - creplacedetailtable = ( Home(7) + 'GF_Replace_DetailV5.dbf') && A detail record is stored here for every single match line that is replaced. - creplacehistorytable = ( Home(7) + 'GF_Replace_History.dbf') && A single header record is stored here for each time the ReplaceFromMarkedRows() method is called. - creplaceudfcode = && Holds the code for a UDF to be used on Replace operations if nReplaceMode is the Advanced Replace mode - csearchoptionsclass = GoFishSearchOptions && The default Search Options class to be used. Can be overriden by passing a string to the Init(I method. - csearchresultsalias = GFSE_SearchResults && This is the name of the cursor where the results rows ill be stored. - ctableextensions = SCX VCX FRX MNX LBX DBC PJX DBF && These are the filetypes that will be handled by the SearchInTable() method. All other filetypes are assumed to be plain text files and will be handled by the SearchInTextFile() method. - cversion = - Height = 46 - lescpress = .F. && Indicates if the ESC key was pressed by the user during on of the lower processing loops of a Search. - lfilehasbeenedited = .F. && This flag is set any time a MODIFY operation is launched from the grid. We asume they made changes to the file, requiring a new search before they can do a Replace. This prevents the REPLACE button from being available until the search is run again. - lfilenotfound = .F. && Will indicate if there were any files in a ProcessProject() or ProcessPath() that were not found. You can check this flag after a search call. - lreadytoreplace = .F. - lresultslimitreached = .F. && Indicates if the max search results limit was reach during a search. See nMaxResults property on the Search Options class. - ltimestampdataprovided = .F. - Name = "gofishsearchengine" - nfilecount = 0 && This values indicates how many files were found to have matches in them. - nfilesprocessed = 0 && This values indicates the total number of files processed that matched the file filter, whether they had matches or not. - nmatchlines = 0 && How many matched lines found in the last search. Note: this counts lines that had a match, note each match. It's possible that one line could have multiple matches. - nreplacecount = 0 - nreplacefilecount = 0 - nreplacehistoryid = 0 && Store the current ID number of the Replace History record. - nreplacemode = 1 && 1= Regular replace, 2 = Advanced Replace (UDF Replace) - nsearchtime = 0 && Tells how long the last search took. It is only reset by SearchInPath() or SerachInProject() took, and not by the lower level search like SearchInFile, or SearchInTextFile, or SearchInTable. - nwildcardfilestoskip = 0 - odirectories = .NULL. && Internally used by the SearcthInPath() to build a collection of directories to be searched. - ofrxcursor = .NULL. && An FFC class used to generate a TimeStamp so the TimeStamp field can be updated when replacing code in a table based file. - ofso = .NULL. - oprogressbar = .NULL. - oprojects = .NULL. && Internally created to show a collection of recently used Projects, or projects found in the current path folder. This is built so the GoFish Advanced form can allow user to choose a Project. - oregexforprocedurestartpositions = .NULL. - oregexforsearch = .NULL. - oreplaceerrors = .NULL. - oresults = .NULL. && This is a collection of match objects from the last search. Must set lCreateResultsCollection if you want this collection to be built - osearcherrors = .NULL. && A collection of any errors that happened during the last search. - osearchoptions = .NULL. && A object instance of the Search Options class that holds properties to controll how the search is performed. - Width = 176 - _memberdata = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - && XML Metadata for customizable properties - - PROCEDURE addcolumn && Adds a Column object to a Grid control. - Lparameters tcTable, tcColumnName, tcColumnDetails - - Local lcAlias - - lcAlias = JustStem(tcTable) - Try - Alter Table (tcTable) Add Column &tcColumnName &tcColumnDetails - Catch - Endtry - - ENDPROC - - PROCEDURE addfieldtoreplacetable - Lparameters lcTable, lcCsr, lcFieldName, lcDataType - - Local llSuccess - If Empty(Field(m.lcFieldName, lcCsr)) - Use In (Juststem(m.lcTable)) && Close main table, so Alter Table in next called method can get Exclusive use - Try - Select 0 - Use (m.lcTable) Exclusive - llSuccess = .T. - Catch - llSuccess = .F. - Endtry - - *-- Migrate up to version 4.3.022 (circa 2012-06-30 --------------------------- - If m.llSuccess - This.AddColumn(m.lcTable, m.lcFieldName, m.lcDataType) - Endif - Endif - - ENDPROC - - PROCEDURE addproject - Lparameters tcProject - - Local llAlreadyInCollection - - llAlreadyInCollection = AtLine(Upper(tcProject), Upper(this.cProjects)) <> 0 - - If !llAlreadyInCollection - This.oProjects.Add(Lower(tcProject)) - This.cProjects = This.cProjects + tcProject + Chr(13) - Endif - ENDPROC - - PROCEDURE assignmatchtype - Lparameters toObject - - Local lcFileType, lcMatchType, lcName, lcTrimmedMatchLine, lcValue, loNameMatches, loValueMatches - Local llError, llWorkingOnClassFromVCX - Local llNameHasDot, loLineMatches - - lcFileType = Upper(toObject.Userfield.FileType) - - lcTrimmedMatchLine = This.TrimWhiteSpace(toObject.MatchLine)&& Trimmed version for display in the grid - toObject.TrimmedMatchLine = lcTrimmedMatchLine - - *-- We read MatchType of of UserField, but from here on, until the result row is created, we will - *-- moved this value of to toObject.MatchType, and do some tweaking on it to make it the right value. - *-- We'll never change the value that was passed in on toObject.UserField.MatchType - lcMatchType = toObject.Userfield.MatchType - toObject.MatchType = lcMatchType - *============================================================================================= - * This area contains a few overrides that I've had to build in to make final tweeks on columns - *============================================================================================= - *-- Sometimes in a VCX/SCX the MethodName will be empty and MatchLine will contain the PROCEDURE name - If Empty(toObject.methodname) And Upper(Getwordnum(lcTrimmedMatchLine , 1)) = 'PROCEDURE' - toObject.MethodName = Getwordnum(lcTrimmedMatchLine, 2) - EndIf - - If !Empty(toObject.MethodName) - With toObject.Userfield - If '.' $ toObject.MethodName - ._Name = Alltrim(._Name + '.' + This.ExtractObjectName(toObject.MethodName), 1, '.') - toObject.MethodName = JustExt(toObject.MethodName) - - If ._ParentClass <> ._Baseclass - ._ParentClass = '' - ._Baseclass = '' - Else - .ContainingClass = '' - EndIf - Else - .ContainingClass = '' - Endif - - If !Empty(._Class) && Trim Class name off of the front (only affects VCX results) - ._Name = Strtran(._Name, ._Class + '.', '', 1, 1) - Endif - Endwith - Else - With toObject.Userfield - If !Empty(._Class) && Trim Class name off of the front (only affects VCX results) - ._Name = Strtran(._Name, ._Class + '.', '', 1, 1) - Endif - Endwith - EndIf - - If Empty(toObject.UserField.Classloc) - toObject.UserField._ParentClass = '' && Affects VCXs. PRGs will be address in these next lines - Endif - - If lcFileType = 'PRG' - With toObject.UserField - .ContainingClass = '' - ._Class = toObject.oProcedure._ClassName - ._ParentClass = toObject.oProcedure._ParentClass - ._Baseclass = toObject.oProcedure._Baseclass - If ._Name = ._Class - ._Name = '' - EndIf - If Upper('ENDDEFINE') $ Upper(toObject.MethodName) - toObject.MethodName = '' - ._Name = '' - EndIf - EndWith - - Endif - - If Upper(lcMatchType) # 'RESERVED3' and This.IsFullLineComment(lcTrimmedMatchLine) - toObject.MatchType = MATCHTYPE_COMMENT - This.CreateResult(toObject) - Return .null. && Exit out, we're done with this record! - EndIf - - *============================================================================================= - * Handle a few tweaks on MatchType assignments - *============================================================================================= - This.ProcessInlineComments(toObject) - - Do Case - - *-- A TimeStamp only search, with no search expression... - Case IsNull(toObject.oMatch) - If This.oSearchOptions.lTimeStamp and Empty(This.oSearchOptions.cSearchExpression) - If Empty(toObject.Userfield._Name) and Empty(toObject.Userfield.ContainingClass) and Empty(toObject.Userfield._Class) - toObject.MatchType = MATCHTYPE_FILEDATE - Else - toObject.MatchType = MATCHTYPE_TIMESTAMP - EndIf - Else - toObject.MatchType = MATCHTYPE_FILENAME - Endif - - Case Inlist(lcFileType, 'SCX', 'VCX', 'FRX')&& And lcMatchType # MATCHTYPE_FILENAME - This.AssignMatchTypeForScxVcx(toObject) - - Case lcFileType = 'PRG' - This.AssignMatchTypeForPrg(toObject) - - Endcase - - *-- Read MatchType back off toObject for a final bit of tweaking... - lcMatchType = toObject.MatchType - - Do Case - Case Empty(lcMatchType) - lcMatchType = MATCHTYPE_CODE - - Case Upper(Getwordnum(lcTrimmedMatchLine , 1)) = '#DEFINE' - lcMatchType = MATCHTYPE_CONSTANT - - Case lcMatchType = MATCHTYPE_PROPERTY_DESC or lcMatchType = MATCHTYPE_PROPERTY_DEF - toObject.UserField.ContainingClass = '' - toObject.UserField._Name = '' - toObject.MethodName = GetWordNum(toObject.MatchLine, 1, ' ') - - Case lcMatchType = MATCHTYPE_PROPERTY - - If Atc('=', lcTrimmedMatchLine) = 0 - toObject.MatchType = MATCHTYPE_CODE - Return toObject - Endif - - lcName = GetWordNum(lcTrimmedMatchLine, 1, ' =') && The Property Name only - toObject.MethodName = lcName - - Try - If Atc('.', lcName) > 0 && Could be ObjectName.ObjectName.ObjectName.PropertyName - lcName = JustExt(lcName) && Need to pick off just the property name, and make sure that's where the match is. - llNameHasDot = .t. - Else - llNameHasDot = .f. - EndIf - - * toObject.UserField.MethodName = lcName - lcName = lcName + ' =' && Need to construct property name like this example: Caption = - - lcValue = Alltrim(Substr(lcTrimmedMatchLine, 1 + At('=', lcTrimmedMatchLine))) && GetWordNum(lcTrimmedMatchLine, 2, '=') - loNameMatches = This.oRegExForSearch.Execute(lcName) - loValueMatches = This.oRegExForSearch.Execute(lcValue) - * loLineMatches = This.oRegExForSearch.Execute(lcTrimmedMatchLine) - loLineMatches = This.oRegExForSearch.Execute(lcName + lcValue) - - With toObject.UserField - If llNameHasDot - If ._ParentClass <> ._Baseclass - ._ParentClass = '' - ._Baseclass = '' - Else - .ContainingClass = '' - EndIf - Else - .ContainingClass = '' - Endif - If Empty(.Classloc) - ._ParentClass = '' - Endif - Endwith - - Do Case - Case loNameMatches.count > 0 and loValueMatches.count > 0 && If match on both sides, make an extra call here for the Name - toObject.MatchType = MATCHTYPE_PROPERTY_NAME - This.CreateResult(toObject) - lcMatchType = MATCHTYPE_PROPERTY_VALUE - Case loNameMatches.count > 0 or loValueMatches.count > 0 && Only matched on one side - If loValueMatches.count > 0 and This.oSearchOptions.lIgnoreMemberData and Lower(lcname) = '_memberdata =' - llError = .t. && so this is skipped - else - lcMatchType = Iif(loNameMatches.count > 0, MATCHTYPE_PROPERTY_NAME, MATCHTYPE_PROPERTY_VALUE) - EndIf - Case loLineMatches.count > 0 && Matched SOMEWHERE on the line. Can span " = " this way - *-- No modification to matchtype required. Will record as MATCHTYPE_PROPERTY - Case loNameMatches.count = 0 and loValueMatches.count = 0 && Possible that there is not match at all, so we record nothing - llError = .t. - Otherwise - *lcMatchType = Iif(loNameMatches.count > 0, MATCHTYPE_PROPERTY_NAME, MATCHTYPE_PROPERTY_VALUE) - Endcase - Catch - lcMatchType = MATCHTYPE_CODE && IF anything above failed, then just consider this a regular code match - Endtry - - EndCase - - If llError = .t. - Return .null. - EndIf - - *-- Wrap MatchType in brackets (if not already set), and if it's not MATCHTYPE_CODE ... - If lcMatchType # MATCHTYPE_CODE And Left(lcMatchType, 1) # '<' - lcMatchType = '<' + lcMatchType + '>' - Endif - - toObject.MatchType = lcMatchType - - Return toObject - ENDPROC - - PROCEDURE assignmatchtypeforprg - Lparameters toObject - - Local lcMatchType, lcParams, lcProcedureType, lnMatchStart, lnProcedureStart, loMatch, loMatches - Local loProcedure - Local lcName, lcTrimmedMatchLine, loNameMatches, loParamMatches - - loProcedure = toObject.oProcedure - loMatch = toObject.oMatch - lcMatchType = Upper(toObject.MatchType) - lnProcedureStart = loProcedure.StartByte - lnMatchStart = Iif(Vartype(loMatch) = 'O', loMatch.FirstIndex, 0) - lcTrimmedMatchLine = toObject.TrimmedMatchLine - - Do Case - Case lcMatchType = 'CLASS' && Note, this case also handles Properties on a Class... - - lcFirstWord = Upper(GetWordNum(lcTrimmedMatchLine, 1)) - If lcFirstWord $ 'PROCEDURE' - lcMatchType = MATCHTYPE_PROCEDURE - Else - lcMatchType = Iif(lnMatchStart = lnProcedureStart, MATCHTYPE_CLASS_DEF, MATCHTYPE_PROPERTY) - Endif - *toObject.MethodName = '' - - Case InList(lcMatchType, 'METHOD', 'PROCEDURE', 'FUNCTION') - - *-- This test looks for matches in on the Procedure Name versus possible parameters: - *-- Ex: PROCEDURE ProcessJob(lcJobNo). - If lnMatchStart = lnProcedureStart - lcName = GetWordNum(lcTrimmedMatchLine, 1, '(') - lcParams = GetWordNum(lcTrimmedMatchLine, 2, '(') - - loNameMatches = This.oRegExForSearch.Execute(lcName) - loParamMatches = This.oRegExForSearch.Execute(lcParams) - - If loNameMatches.count > 0 and loParamMatches.count > 0 && If match on both sides, make an extra call here for the Name - toObject.UserField.MatchType = '<' + Proper(lcMatchType) + '>' - This.CreateResult(toObject) - lcMatchType = MATCHTYPE_CODE - Else - lcMatchType = Iif(loParamMatches.count > 0, MATCHTYPE_CODE, Proper(lcMatchType)) - EndIf - Else - lcMatchType = MATCHTYPE_CODE - Endif - - Otherwise - lcMatchType = toObject.MatchType && Restore it back - - EndCase - - toObject.MatchType = lcMatchType - - - ENDPROC - - PROCEDURE assignmatchtypeforscxvcx - Lparameters toObject - - Local lcClass, lcContainingClass, lcMatchType, lcMethodName, lcName, lcProcedureType, lcPropertyName - Local lcTrimmedMatchLine, lnMatchStart, lnProcedureStart, loMatches - - lcMethodName = toObject.MethodName - lcTrimmedMatchLine = toObject.TrimmedMatchLine - - lcProcedureType = toObject.oProcedure.type - lnProcedureStart = toObject.oProcedure.StartByte - - lnMatchStart = toObject.oMatch.FirstIndex - lcMatchType = Upper(toObject.MatchType) - - With toObject.UserField - lcClass = ._Class - lcContainingClass = .ContainingClass - lcName = ._Name - Endwith - - Do Case - - Case Alltrim(lcClass) == Alltrim(lcTrimmedMatchLine) and !Empty(lcClass) and Empty(lcName) - lcMatchType = MATCHTYPE_CLASS_DEF - - Case lcMatchType = 'RESERVED3' - If Left(lcTrimmedMatchLine, 1) = '*' && A Method Definition line - lcMethodName = Substr(lcTrimmedMatchLine, 2, Len(GetWordNum(lcTrimmedMatchLine, 1)) -1) - loMatches = This.oRegExForSearch.Execute(lcMethodName) - lcMatchType = Iif(loMatches.Count > 0, MATCHTYPE_METHOD_DEF, MATCHTYPE_METHOD_DESC) - toObject.MethodName = Iif(loMatches.Count > 0, lcMethodName, '') - Else && A Property Definition line - lcPropertyName = GetWordNum(lcTrimmedMatchLine, 1) - If Atc('.', lcPropertyName) > 0 - lcPropertyName = JustExt(lcPropertyName) - Endif - loMatches = This.oRegExForSearch.Execute(lcPropertyName) - lcMatchType = Iif(loMatches.Count > 0, MATCHTYPE_PROPERTY_DEF, MATCHTYPE_PROPERTY_DESC) - EndIf - - Case lcMatchType = 'RESERVED7' - lcMatchType = MATCHTYPE_CLASS_DESC - - Case lcMatchType = 'RESERVED8' - lcMatchType = MATCHTYPE_INCLUDE_FILE - - Case lcMatchType = 'OBJNAME' - lcMatchType = Iif(Empty(lcName), MATCHTYPE_CLASS, MATCHTYPE_NAME) - - Case lcMatchType = 'PROCEDURE' - If lnMatchStart = lnProcedureStart and !Empty(toObject.oProcedure.ParentClass) - lcMatchType = MATCHTYPE_METHOD - Else - lcMatchType = MATCHTYPE_CODE - Endif - - Case lcMatchType = 'CLASS' - lcMatchType = MATCHTYPE_CLASS - - Case lcMatchType = 'PROPERTIES' - lcMatchType = MATCHTYPE_PROPERTY - - Otherwise - lcMatchType = toObject.MatchType && Restore it back - - EndCase - - toObject.MatchType = lcMatchType - - - ENDPROC - - PROCEDURE backupfile - #Define ccBACKUPFOLDER Addbs(Home(7) + 'GoFishBackups') - - Lparameters tcFilePath, tnReplaceHistoryId - - Local lcBackupPRG, llCopyError - Local laExtensions[1], lcDestFile, lcExt, lcExtensions, lcSourceFile, lcThisBackupFolder, lnI - - If This.oSearchOptions.lPreviewReplace = .t. - Return - Endif - - llCopyError = .f. - - *-- If the user has created a custom backup PRG, and placed it in their path, then call it instead - lcBackupPRG = 'GoFish_Backup.prg' - - If File(lcBackupPRG) - Do &lcBackupPRG With tcFilePath, tnReplaceHistoryId - Return - Endif - - If Not Directory (ccBACKUPFOLDER) && Create main folder for backups, if necessary - Mkdir (ccBACKUPFOLDER) - Endif - - * Create folder for this ReplaceHistorrID, if necessary - lcThisBackupFolder = Addbs (ccBACKUPFOLDER + Transform (tnReplaceHistoryId)) - - If Not Directory (lcThisBackupFolder) - Mkdir (lcThisBackupFolder) - Endif - - * Determine the extensions we need to consider - lcExt = Upper (Justext (tcFilePath)) - - Do Case - Case lcExt = 'SCX' - lcExtensions = 'SCX,SCT' - Case lcExt = 'VCX' - lcExtensions = 'VCX,VCT' - Case lcExt = 'FRX' - lcExtensions = 'FRX,FRT' - Case lcExt = 'MNX' - lcExtensions = 'MNX,MNT,MPR,MPX' - Case lcExt = 'DBC' - lcExtensions = 'DBC,DCT,DCX' - Case lcExt = 'LBX' - lcExtensions = 'LBX,LBT' - Otherwise - lcExtensions = lcExt - Endcase - - * Copy each file into the destination folder, if its not already there - Alines (laExtensions, lcExtensions, 0, ',') - - For lnI = 1 To Alen (laExtensions) - lcSourceFile = Forceext (tcFilePath, laExtensions (lnI)) - lcDestFile = lcThisBackupFolder + Justfname (lcSourceFile) - If Not File (lcDestFile) - Try - Copy File (lcSourceFile) To (lcDestFile) - Catch - If !llCopyError - This.SetReplaceError('Error creating backup of file.', tcFilePath, tnReplaceHistoryId) - Endif - llCopyError = .t. - Endtry - Endif - Endfor - - Return !llCopyError - ENDPROC - - PROCEDURE builddirectoriescollection && Fill this.oDirectories collection with all folders under the current path. Recursive folder list is created. This is called by SearchInPath() to build a colecltions of folders to searhc through. - Lparameters tcDir - - *-- Note: This method is called recursively on itself if subfolders are found. See the For loop at the bottom... - *-- For more good info on recursive processing of directories, see this page: http://fox.wikis.com/wc.dll?Wiki~RecursiveDirectoryProcessing - - Local laDirList[1], laFileList[1], lcCurrentDirectory, lcDriveAndDirectory, lnDirCount, lnPtr, lnFileCount - - *!* ** { JRN -- 07/11/2016 08:11 AM - Begin - *!* If Lastkey() = 27 or Inkey() = 27 - If Inkey() = 27 - *!* ** } JRN -- 07/11/2016 08:11 AM - End - This.lEscPress = .T. - Clear Typeahead - Return 0 - Endif - - Try - Chdir (tcDir) - llChanged = .t. - Catch - llChanged = .f. - EndTry - - If !llChanged - Return .f. - Endif - - This.ShowWaitMessage('Scanning directory ' + tcDir) - - lcCurrentDirectory = Curdir() - lcDriveAndDirectory = Addbs(Sys(5) + Sys(2003)) - - This.oDirectories.Add(lcDriveAndDirectory) - - lnDirCount = Adir(laDirList, '*.*', 'D') - - If Vartype(This.oProgressBar) = 'O' - lnFileCount = ADir(laFileList, lcDriveAndDirectory + '*.*') - This.oProgressBar.nMaxValue = This.oProgressBar.nMaxValue + lnFileCount - Endif - - For lnPtr = 1 To lnDirCount - If 'D' $ laDirList(lnPtr, 5) && If we have found another dir, then we need to work through it also - If Vartype(This.oProgressBar) = 'O' - This.oProgressBar.nMaxValue = This.oProgressBar.nMaxValue - 0 && Subtract off directories from file count - Endif - lcCurrentDirectory = laDirList(lnPtr, 1) - If lcCurrentDirectory <> '.' And lcCurrentDirectory <> '..' - This.BuildDirectoriesCollection(lcCurrentDirectory) - Endif - Endif - Endfor - - Cd .. - - ENDPROC - - PROCEDURE buildprojectscollection - Local loPEME_BaseTools as 'GF_PEME_BaseTools' OF 'Lib\GF_PEME_BaseTools.vcx' - Local laProjects[1], lcCurrentDir, lcProject, loMRU_Project, loMRU_Projects, loProject - *:Global ix - - lcCurrentDir = Addbs(Sys(5) + Sys(2003)) && Current Default Drive and path - - *-- Blank out current Projects collecitons. Will rebuild below... - This.oProjects = CreateObject('Collection') - This.cProjects = '' - - If Version(2) = 0 && If we are running from an .EXE file then exit (No projects will be open) - Return - Endif - - *-- Add all open Projects in _VFP to the Collection - For each loProject in _VFP.Projects - lcProject = Lower(loProject.Name) - This.AddProject(lcProject) - This.cProjects = This.cProjects + lcProject + Chr(13) - Endfor - - *-- Add any Projects in the current folder - Adir(laProjects, lcCurrentDir + '*.pjx') - - For ix = 1 To Alen(laProjects) / 5 - lcProject = Lower(FullPath(laProjects(ix, 1))) - This.AddProject(lcProject) - This.cProjects = This.cProjects + lcProject + Chr(13) - Endfor - - *-- Add MRU Projects to the Collection... - loPEME_BaseTools = NewObject('GF_PEME_BaseTools', 'Lib\GF_PEME_BaseTools.vcx') - - loMRU_Projects = loPEME_BaseTools.GetMRUList('PJX') - - For Each loMRU_Project in loMRU_Projects - lcProject = Lower(loMRU_Project) - This.AddProject(lcProject) - This.cProjects = This.cProjects + lcProject + Chr(13) - Endfor - - - - - - ENDPROC - - PROCEDURE changecurrentdir - Lparameters tcDir - - Local lcCurrentDirectory, lcDefaultDrive, lcPath, llReturn - - *-- Attempt to change current dir to passed in location ------- - If !Empty(tcDir) - Try - Cd (tcDir) - llReturn = .t. - Catch - This.SetSearchError('Invalid path [' + tcDir + '] passed to ChangeCurrentDir() method.') - llReturn = .f. - EndTry - Else - llReturn = .t. - EndIf - - This.BuildProjectsCollection() - - Return llReturn - - - - - - - - - - - - - - ENDPROC - - PROCEDURE checkfileexttemplate - Lparameters tcFile - - Local lcFilename, lcFilenameMask, llFilenameMatch - - lcFileExtTemplate = JustExt(This.oSearchOptions.cFileTemplate) - - llReturn = This.MatchTemplate(tcFile, lcFileExtTemplate) - - - - - - ENDPROC - - PROCEDURE checkfilenametemplate - Lparameters tcFile - - Local lcFilename, lcFilenameMask, llMatch, lnLength - - If Empty(JustStem(This.oSearchOptions.cFileTemplate)) - Return .t. - EndIf - - lcFilenameMask = Upper(JustStem(This.oSearchOptions.cFileTemplate)) - lcFilename = Upper(JustStem(tcFile)) - - Do Case - Case lcFilenameMask = '*' - llMatch = .t. - Case (Left(lcFilenameMask, 1) = '*' and Right(lcFilenameMask, 1) = '*') or Atc('*', lcFilenameMask) = 0 - llMatch = lcFilenameMask $ lcFilename - Case Right(lcFilenameMask, 1) = '*' - lnLength = Len(cFilenameMask) - 1 - lcFilenameMask = Left(lcFilenameMask, lnLength) - llMatch = Left(lcFilename, lnLength) = lcFilenameMask - Case Left(lcFilenameMask, 1) = '*' - lnLength = Len(cFilenameMask) - 1 - lcFilenameMask = Right(lcFilenameMask, lnLength) - llMatch = Right(lcFilename, lnLength) = lcFilenameMask - Endcase - - Return llMatch - ENDPROC - - PROCEDURE cleanupbinarystring - Lparameters tcString, llClipAtChr8 - - If llClipAtChr8 && The Select statement from a DBC View needs to be clipped at the Chr(8) near the end of the statement - lnStart = Atc(Chr(8), tcString) - tcString = Left(tcString, lnStart) - Endif - - *-- Replace junk characters with a space - For x = 0 to 31 - tcString = Strtran(tcString, Chr(X), ' ') - EndFor - - Return tcString - ENDPROC - - PROCEDURE clearreplaceerrormessage - This.oSearchOptions.cReplaceErrorMessage = '' - - ENDPROC - - PROCEDURE clearreplacesettings - This.oSearchOptions.lAllowBlankReplace = .F. - This.oSearchOptions.cReplaceExpression = '' - - - - ENDPROC - - PROCEDURE clearresultscollection - This.oResults = CreateObject('Collection') - ENDPROC - - PROCEDURE clearresultscursor - Local lcSearchResultsAlias, lnSelect - - lnSelect = Select() - - lcSearchResultsAlias = This.cSearchResultsAlias - - Create Cursor (lcSearchResultsAlias)( ; - Process L, ; - FilePath C(254), ; - Filename C(50), ; - TrimmedMatchLine C(254), ; - Baseclass C(254), ; - ParentClass C(254), ; - Class C(254), ; - Name C(254), ; - MethodName C(80), ; - ContainingClass C(254), ; - Classloc c(254), ; - MatchType C(25), ; - Timestamp T, ; - FileType C(4), ; - Type C(12), ; - Recno N(6, 0), ; - procstart I, ; - procend I, ; - proccode M, ; - statement M,; - statementstart I,; - firstmatchinstatement L,; - firstmatchinprocedure L,; - matchstart I, ; - matchlen I, ; - lIsText L, ; - Column C(10), ; - Code M, ; - Id I, ; - MatchLine M, ; - Replaced L, ; - TrimmedReplaceLine C(254), ; - ReplaceLine C(254), ; - ReplaceRisk I, ; - Replace_DT T; - ) - - Select (lnSelect) - - ENDPROC - - PROCEDURE compile - Lparameters tcFile - - Local lcExt - - If This.oSearchOptions.lPreviewReplace = .t. - Return - Endif - - lcExt = Alltrim(Upper(Justext(tcFile))) - - Do Case - - Case lcExt = 'VCX' - Compile ClassLib (tcFile) - - Case lcExt = 'SCX' - Compile Form (tcFile) - - Case lcExt = 'LBX' - Compile Label (tcFile) - - Case lcExt = 'FRX' - Compile Report (tcFile) - - Endcase - ENDPROC - - PROCEDURE createmenudisplay - Lparameters tcMenu - - #Define CRLF Chr[13] + Chr[10] - #Define SPACING 3 - #Define PREFIX '*' - - Local laLevels[1], lcPROMPT, lcResult, lnLevel, lnSelect - - lnSelect = Select() - Select (tcMenu) - - lcResult = '' - lnLevel = 1 - Dimension this.aMenuStartPositions[Reccount(tcmenu)] - - Scan - this.aMenuStartPositions[Recno(tcmenu)] = Len(lcResult) - Do Case - Case objCode = 22 - - Case objCode = 1 - laLevels[1] = Name - - Case objCode = 77 - lcPROMPT = Prompt - lnLevel = Ascan(m.laLevels, Trim(LevelName)) - - Case objCode = 0 - lcResult = m.lcResult + PREFIX + Space(SPACING * m.lnLevel) + Strtran(m.lcPROMPT, '\-', '-----') + CR - lnLevel = m.lnLevel + 1 - Dimension m.laLevels[m.lnLevel] - laLevels[m.lnLevel] = Name - - Otherwise - lnLevel = Ascan(m.laLevels, Trim(LevelName)) - lcResult = m.lcResult + PREFIX + Space(SPACING * m.lnLevel) + Strtran(Prompt, '\-', '-----') + CR - Endcase - Endscan - - Select(m.lnSelect) - - Return m.lcResult - ENDPROC - - PROCEDURE createreplacedetailrecord - Lparameters toReplace - - Local lcDBC, lnId, lnSelect - - If This.oSearchOptions.lPreviewReplace = .t. && Do nothing if we are only in Preview mode - Return - Endif - - lnSelect = Select() - - lcDBC = Strtran(Upper(this.cReplaceDetailTable), '.DBF', '.DBC') - - If !File(this.cReplaceDetailTable) or !File(lcDBC) - Set Safety off - Delete File (lcDBC) - Set Safety on - Create Database (lcDBC) - Select (this.cSearchResultsAlias) - Copy Structure to (this.cReplaceDetailTable) DATABASE (lcDBC) - - Alter table (this.cReplaceDetailTable) add column PK I AutoInc - Alter table (this.cReplaceDetailTable) add column HistoryFK I - - Use In (This.cReplaceDetailTable) - Endif - - This.MigrateReplaceDetailTable() - - toReplace.Replace_dt = Datetime() - toReplace.Replaced = .t. - AddProperty(toReplace, 'HistoryFK', This.nReplaceHistoryId) - - Insert Into (This.cReplaceDetailTable) From Name toReplace - - Select(lnSelect) - ENDPROC - - PROCEDURE createreplacehistoryrecord - Local lcScope, lnSelect - - If This.oSearchOptions.lPreviewReplace = .t. && Do nothing if we are only in Replace Preview mode - Return - EndIf - - lnSelect = Select() - - If !File(This.cReplaceHistoryTable) - Create Table (This.cReplaceHistoryTable) FREE (; - Id I AutoInc NextValue 1001, ; - date_time T, ; - replaces I, ; - scope C(254), ; - searchstr C(254), ; - replacestr C(254) ; - ) - Endif - - If InList(this.oSearchOptions.nSearchScope, 1, 2) - lcScope = This.oSearchOptions.cProject - Else - lcScope = This.oSearchOptions.cPath - EndIf - - Insert Into (This.cReplaceHistoryTable) (scope, date_time, searchstr, replacestr) ; - Values (lcScope, Datetime(), This.oSearchOptions.cSearchExpression, This.oSearchOptions.cReplaceExpression) - - This.nReplaceHistoryId = Evaluate(JustStem(JustFname(This.cReplaceHistoryTable)) + '.Id') - - Select (lnSelect) - ENDPROC - - PROCEDURE createresult - Lparameters toObject - - *loObject = This.AssignMatchType(toObject) - - This.nMatchLines = This.nMatchLines + 1 - - If This.oSearchOptions.lCreateResultsCursor - This.CreateResultsRow(toObject) - EndIf - - If This.oSearchOptions.lCreateResultsCollection - this.oResults.Add(toObject) - EndIf - - - ENDPROC - - PROCEDURE createresultsrow - Lparameters toObject - - *-- This set of mem vars is required to insert a new row into the local results cursor. - *-- The passed in toObject must be an object which has the reference prooperties on it, so - *-- that a complete record can be created. - - Local lIsText, lcObjectNameFromProperty, lcProperty, lcResultsAlias, lnWords - Local Timestamp, BaseClass, Class, CLASSLoc, Code, Column, ContainingClass, FileName, FilePath - Local FileType, Id, MatchLen, MatchLine, MatchStart, MatchType, MethodName, Name, ParentClass - Local proccode, procend, Process, ProcStart, Recno, replacerisk, TrimmedMatchLine - Local Statement, StatementStart - - lcResultsAlias = This.cSearchResultsAlias - - With m.toObject - MethodName = This.FixPropertyName(.MethodName) - MatchLine = .MatchLine - TrimmedMatchLine = .TrimmedMatchLine - ProcStart = .ProcStart - procend = .procend - proccode = Evl(.proccode, .Code) - Statement = Evl(.Statement, .MatchLine) - StatementStart = .StatementStart - MatchStart = .MatchStart - MatchLen = .MatchLen - MatchType = .MatchType - code = .Code - Endwith - - With m.toObject.UserField - process = .F. - FilePath = Lower(.FilePath) - FileName = Lower(.FileName) - FileType = .FileType - lIsText = .IsText - baseclass = ._BaseClass - ParentClass = ._ParentClass - ContainingClass = .ContainingClass - name = ._Name - class = ._Class - CLASSLoc = .CLASSLoc - recno = .Recno && from the VCX, SCX, VCX, etc. - TimeStamp = .Timestamp - column = .Column - Endwith - - * *-- Removed 07/07/2012 - * *--- Clean up / doctor up the Object Name - * If 'scx' $ Lower(m.filetype) && trim off the form name from front of object name - * m.name = Substr(m.name, Atc('.', m.name) + 1) - * EndIf - - *--- Sometimes, part of the object name may live on the match line - *--- So, we need to append it to the end of the object name - If m.MatchType $ (MATCHTYPE_PROPERTY_NAME + MATCHTYPE_PROPERTY_VALUE) - lcObjectNameFromProperty = '' - lcProperty = Getwordnum(m.TrimmedMatchLine, 1) - lnWords = Getwordcount(m.lcProperty, '.') - - If m.lnWords > 1 - lcObjectNameFromProperty = Left(m.lcProperty, Atc('.', m.lcProperty, m.lnWords - 1) - 1) - Endif - - name = Alltrim(m.name + '.' + m.lcObjectNameFromProperty, '.') - Endif - - *-------------------------------------------------------------------------------- - - id = Reccount(m.lcResultsAlias) + 1 && A unique key for each record - - replacerisk = This.GetReplaceRiskLevel(m.toObject) - - Insert Into &lcResultsAlias From Memvar - - ENDPROC - - PROCEDURE Destroy - This.oRegExForProcedureStartPositions = .Null. - This.oRegExForSearch = .Null. - This.oResults = .Null. - This.oSearchOptions = .Null. - This.oFrxCursor = .Null. - This.oProjects = .Null. - This.oSearchErrors = .Null. - This.oReplaceErrors = .Null. - This.oDirectories = .Null. - This.oProgressBar = .Null. - This.oFSO = .Null. - - - - ENDPROC - - PROCEDURE dropcolumn - Lparameters tcTable, tcColumnName - - Local lcAlias - - lcAlias = JustStem(tcTable) - Try - Alter Table (tcTable) Drop Column &tcColumnName - Catch - Endtry - - ENDPROC - - PROCEDURE editfromcurrentrow - Lparameters tcCursor, tlSelectObjectOnly - - Local loPBT As 'GF_PEME_BaseTools' - Local lcClass, lcCodeBlock, lcExt, lcFileToEdit, lcMatchType, lcMethod, lcMethodString, lcName - Local lcProperty, lnMatchStart, lnProcStart, lnRecNo, lnStart, lnWords, loTools - - lcExt = Alltrim(Upper(&tcCursor..FileType)) - lcFileToEdit = Upper(Alltrim(&tcCursor..FilePath)) - lcClass = Alltrim(&tcCursor..Class) - lcName = Alltrim(&tcCursor..Name) - lcMethod = Alltrim(&tcCursor..MethodName) - lcMatchType = Alltrim(&tcCursor..MatchType) - lnRecNo = &tcCursor..Recno - lnProcStart = &tcCursor..ProcStart - lnMatchStart = &tcCursor..MatchStart - - If lcExt # 'PRG' and (Empty(m.lcMethod) Or 0 # Atc(' 0, m.lnStart, 1) - Do Case - Case m.lcExt = 'SCX' - lcClass = '' - *If Lower(Alltrim(&tcCursor..Baseclass)) <> 'form' - lcMethodString = 'x.' + m.lcMethodString - *EndIf - - Case m.lcExt = 'VCX' - If m.lcName = m.lcClass - lcMethodString = m.lcMethod - Endif - Endcase - Else - lnStart = (&tcCursor..MatchStart) + 1 && The CHARACTER position of the line where the match is on - Endif - - Endif - - loPBT = Createobject('GF_PEME_BaseTools') - - *-- 2011-12-28 (As requested by JRN) ------------- - *-- The following code will automatically select the actual Object on the form or class, or select the Property name. - *-- This will also select it in the PEM Editor main form. - If Type('_Screen.cThorDispatcher') = 'C' - - loTools = Execscript(_Screen.cThorDispatcher, 'Class= tools from pemeditor') - - If Vartype(m.loTools) = 'O' - - If m.lcExt = 'SCX' And &tcCursor..BaseClass = 'form' && Must trim off form name from front of object name - lcName = '' - Endif - - Do Case - Case m.lcMatchType = MatchType_Name - m.loPBT.EditSourceX(m.lcFileToEdit, m.lcClass) - m.loTools.SelectObject(m.lcName) - Return - - Case m.lcMatchType $ (MATCHTYPE_PROPERTY_NAME + MATCHTYPE_PROPERTY_VALUE + MATCHTYPE_PROPERTY_DEF ) - *-- Pull out the Property name from the MatchLine (it can be preceded by an object name) - lcProperty = Getwordnum(&tcCursor..TrimmedMatchLine, 1) - lnWords = Getwordcount(m.lcProperty, '.') - lcProperty = Getwordnum(m.lcProperty, m.lnWords, '. ') - lcProperty = This.FixPropertyName(m.lcProperty) - - m.loPBT.EditSourceX(m.lcFileToEdit, m.lcClass) - m.loTools.SelectObject(m.lcName, m.lcProperty) - Return - Endcase - Endif - - Endif - - m.loPBT.EditSourceX(m.lcFileToEdit, m.lcClass, m.lnStart, m.lnStart, m.lcMethodString, m.lnRecNo) - - If m.lcExt = 'PRG' Or Not Empty(m.lcMethodString) - This.ThorMoveWindow() - Endif - - - ENDPROC - - PROCEDURE editmenufromcurrentrow - Lparameters tcCursor - - Local loEditorWin As Editorwin Of 'c:\visual foxpro\programs\mythor\thor\tools\apps\pem editor\source\peme_editorwin.vcx' - Local lcFileToEdit, lcMenuAlias, lcMenuDisplay, lcTempFile, llSuccess, lnEndPos, lnRecNo, lnStartPos - - lcMenuAlias = 'Menu' + Sys(2015) - lcFileToEdit = Upper(Alltrim(&tcCursor..FilePath)) - Try - Use (m.lcFileToEdit) Shared Again In 0 Alias &lcMenuAlias - llSuccess = .T. - Catch - llSuccess = .F. - Endtry - - If m.llSuccess = .F. - Return m.llSuccess - Endif - - lcMenuDisplay = This.CreateMenuDisplay(m.lcMenuAlias) - lcTempFile = Addbs(Sys(2023)) + Chrtran(Justfname(m.lcFileToEdit), '.', '_') + Sys(2015) + '.txt' - Strtofile(m.lcMenuDisplay, m.lcTempFile) - Modify File (m.lcTempFile) Nowait - - loEditorWin = Execscript(_Screen.cThorDispatcher, 'Class= editorwin from pemeditor') - m.loEditorWin.ResizeWindow(600, 800) - m.loEditorWin.SetTitle(m.lcTempFile) - - lnRecNo = &tcCursor..Recno - If Between(m.lnRecNo, 1, Reccount(m.lcMenuAlias)) - lnStartPos = This.aMenuStartPositions[m.lnRecNo] - If m.lnRecNo < Reccount(m.lcMenuAlias) - lnEndPos = This.aMenuStartPositions[m.lnRecNo + 1] - Else - lnEndPos = 1000000 - Endif - - m.loEditorWin.EnsureVisible(0) - m.loEditorWin.Select(m.lnStartPos, m.lnEndPos) - m.loEditorWin.EnsureVisible(m.lnStartPos) - Endif - - Use In (m.lcMenuAlias) - - ENDPROC - - PROCEDURE editobjectfromcurrentrow - Lparameters tcCursor - - Local loPBT As 'GF_PEME_BaseTools' - Local lcClass, lcExt, lcFileToEdit, lcMatchType, lcName, lcProperty, lnWords, loTools - - lcExt = Alltrim(Upper(&tcCursor..FileType)) - lcMatchType = Alltrim(&tcCursor..MatchType) - lcFileToEdit = Upper(Alltrim(&tcCursor..FilePath)) - lcClass = Alltrim(&tcCursor..Class) - lcName = Alltrim(&tcCursor..Name) - - loPBT = Createobject('GF_PEME_BaseTools') - m.loPBT.EditSourceX(m.lcFileToEdit, m.lcClass) - - If Type('_Screen.cThorDispatcher') = 'C' - - loTools = Execscript(_Screen.cThorDispatcher, 'Class= tools from pemeditor') - - If Vartype(m.loTools) = 'O' - - If m.lcExt = 'SCX' And &tcCursor..BaseClass = 'form' && Must trim off form name from front of object name - lcName = '' - Endif - - If m.lcMatchType $ (MATCHTYPE_PROPERTY_NAME + MATCHTYPE_PROPERTY_VALUE + MATCHTYPE_PROPERTY_DEF ) - *-- Pull out the Property name from the MatchLine (it can be preceded by an object name) - lcProperty = Getwordnum(&tcCursor..TrimmedMatchLine, 1) - lnWords = Getwordcount(m.lcProperty, '.') - lcProperty = Getwordnum(m.lcProperty, m.lnWords, '. ') - lcProperty = This.FixPropertyName(m.lcProperty) - - m.loTools.SelectObject(m.lcName, m.lcProperty) - Else - m.loTools.SelectObject(m.lcName) - Endif - Endif - - Endif - - - - ENDPROC - - PROCEDURE endtimer - This.nSearchTime = Seconds() - This.nSearchTime - ENDPROC - - PROCEDURE escapesearchexpression - Lparameters tcString - - Local lcString - - lcString = tcString - - lcString = Strtran(tcString, '\', '\\') - lcString = Strtran(lcString, '+', '\+') - lcString = Strtran(lcString, '.', '\.') - lcString = Strtran(lcString, '|', '\|') - lcString = Strtran(lcString, '{', '\{') - lcString = Strtran(lcString, '}', '\}') - lcString = Strtran(lcString, '[', '\[') - lcString = Strtran(lcString, ']', '\]') - lcString = Strtran(lcString, '(', '\(') - lcString = Strtran(lcString, ')', '\)') - lcString = Strtran(lcString, '$', '\$') - - lcString = Strtran(lcString, '^', '\^') - lcString = Strtran(lcString, ':', '\:') - lcString = Strtran(lcString, ';', '\;') - lcString = Strtran(lcString, '-', '\-') - - If This.oSearchOptions.nSearchMode = GF_SEARCH_MODE_LIKE - lcString = Strtran(lcString, '?', '.') - lcString = Strtran(lcString, '*', '.*') - Else - lcString = Strtran(lcString, '?', '\?') - lcString = Strtran(lcString, '*', '\*') - Endif - - - Return lcString - - - * http://stackoverflow.com/questions/280793/case-insensitive-string-replacement-in-javascript - - - *!* RegExp.escape = function(str) { - *!* var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\ - *!* return str.replace(specials, "\\$&"); - *!* } - ENDPROC - - PROCEDURE extractmethodname - Lparameters tcReference - - If !Empty(tcReference) - Return JustExt(tcReference) - Else - Return '' - Endif - ENDPROC - - PROCEDURE extractobjectname - Lparameters tcReference - - If !Empty(tcReference) - Return JustStem(tcReference) - Else - Return '' - Endif - - ENDPROC - - PROCEDURE filestoskip - Lparameters tcFile - - Local lcFileName, lnI - - lcFileName = Upper(Justfname(m.tcFile)) - - If (Chr(13) + m.lcFileName + Chr(13)) $ This.cFilesToSkip - Return .T. - Endif - - For lnI = 1 To This.nWildCardFilesToSkip - If Like(This.aWildCardFiles[lni], m.tcFile) - Return .T. - Endif - Endfor - - Return .F. - - - - - - ENDPROC - - PROCEDURE findprocedureformatch - Lparameters toProcedureStartPositions, tnStartByte - - Local loReturn as 'GF_Procedure' - Local loClassDef as 'GF_Procedure' - Local llClassDef, lnX, loNextMatch - - loReturn = CreateObject('GF_Procedure') - - If IsNull(toProcedureStartPositions) - Return loReturn - EndIf - - lnX = 1 - - For Each result In toProcedureStartPositions - - If result.startbyte > tnStartByte - exit - Else - loReturn = result - EndIf - - Do Case - Case 'END CLASS' $ Upper(result.Type) - llClassDef = .f. - loClassDef = CreateObject('GF_Procedure') && An empty result - Case 'CLASS' $ Upper(result.Type) - llClassDef = .t. - loClassDef = result - EndCase - - lnX = lnX + 1 - Endfor - - *-- This code attempted to identify matches that we INSIDE of a CLASS, but not inside of a Proc. - *-- This would catch wildly located code in class that is between Proc definitions. - * Removed 10/04/2012 - * If lnX < toProcedureStartPositions.count and llClassDef - * loNextMatch = toProcedureStartPositions.Item(lnX + 1) - * If tnStartByte < loNextMatch.StartByte - * loReturn = loClassDef - * Endif - * Endif - - Return loReturn - ENDPROC - - PROCEDURE findstatement - Lparameters loObject - - #Define Tab Chr[9] - - Local lcLastLine, lcMatchLine, lcPreceding, lcProcCode, lcResult, lnCRPos, lnLen, lnLength, lnStart - Local lnTextStart - - lnStart = m.loObject.MatchStart - m.loObject.ProcStart + 1 - - *!* ** { JRN -- 08/05/2016 07:16 AM - Begin - *!* lnLength = m.loObject.MatchLen - 1 - lnLength = m.loObject.MatchLen - *!* ** } JRN -- 08/05/2016 07:16 AM - End - - lcProcCode = Evl(loObject.ProcCode, loObject.Code) - - * previously, assumed trailing CR, but this dropped off last character if not found - *!* ** { JRN -- 08/05/2016 07:16 AM - Begin - *!* lcMatchLine = Substr(m.lcProcCode, m.lnStart, m.lnLength) - lcMatchLine = Trim(Substr(m.lcProcCode, m.lnStart, m.lnLength), 1, chr[13], chr[10]) - *!* ** } JRN -- 08/05/2016 07:16 AM - End - - lcResult = m.lcMatchLine - *** JRN 12/02/2015 : Add in leading lines, if any - Do While .T. - lcPreceding = Left(m.lcProcCode, m.lnStart - 1) - lnCRPos = Rat(CR, m.lcPreceding, 2) - If m.lnCRPos > 0 - lcPreceding = Substr(m.lcPreceding, m.lnCRPos + 1) - Endif - If This.IsContinuation(m.lcPreceding) - lcResult = m.lcPreceding + m.lcResult - lnStart = m.lnStart - Len(m.lcPreceding) - lnLength = Len(m.lcResult) - Else - Exit - Endif - Enddo - - *** JRN 12/02/2015 : Add in following lines, if any - lcLastLine = m.lcMatchLine - Do While This.IsContinuation(m.lcLastLine) - lcLastLine = Substr(m.lcProcCode, m.lnStart + m.lnLength) - lnLen = At(CR, m.lcLastLine, 2) - If m.lnLen > 0 - lcLastLine = Left(m.lcLastLine, m.lnLen - 1) - Endif - lcResult = m.lcResult + m.lcLastLine - lnLength = Len(m.lcResult) - Enddo - - *** JRN 12/05/2015 : within Text / Endtext - If 0 # Atc('text', Left(m.lcProcCode, m.lnStart)) ; - And 0 # Atc('endtext', Substr(m.lcProcCode, m.lnStart + m.lnLength)) - - lnTextStart = m.lnStart - Do While m.lnTextStart > 1 - lcPreceding = Left(m.lcProcCode, m.lnTextStart - 1) - lnCRPos = Rat(CR, m.lcPreceding, 2) - If m.lnCRPos > 0 - lcPreceding = Substr(m.lcPreceding, m.lnCRPos + 1) - Endif - Do Case - Case 'text' = Lower(Getwordnum(m.lcPreceding, 1, ' ' + tab + cr + lf)) - lnTextStart = m.lnTextStart - Len(m.lcPreceding) - lnLength = m.lnLength + m.lnStart - m.lnTextStart - lnStart = m.lnTextStart - lcResult = Substr(m.lcProcCode, m.lnStart, m.lnLength) - Do While Len(m.lcProcCode) > m.lnStart + m.lnLength - lcLastLine = Substr(m.lcProcCode, m.lnStart + m.lnLength) - lnLen = At(CR, m.lcLastLine, 2) - If m.lnLen > 0 - lcLastLine = Left(m.lcLastLine, m.lnLen - 1) - Endif - lcResult = m.lcResult + m.lcLastLine - lnLength = Len(m.lcResult) - If 'endtext' = Lower(Getwordnum(m.lcLastLine, 1, ' ' + tab + cr + lf)) - Exit - Endif - EndDo - Exit - Case 'endtext' = Lower(Getwordnum(m.lcPreceding, 1, ' ' + tab + cr + lf)) - Exit - Otherwise - lnTextStart = m.lnTextStart - Len(m.lcPreceding) - Endcase - Enddo - Endif - - - loObject.Statement = m.lcResult - loObject.StatementStart = m.lnStart - - ENDPROC - - PROCEDURE fixpropertyname - Lparameters lcProperty - - * gets rid of dimensions and leading '*^' - - Return Chrtran(GetWordNum(m.lcProperty, 1, '(['), '*^', '') - ENDPROC - - PROCEDURE generatehtmlcode - Lparameters tcCode, tcMatchLine, tnMatchStart, tcCss, tcJavaScript, tcReplaceLine, tlAlreadyReplaced, tnTabsToSpaces, ; - tcSearch, tcStatementFilter, tcProcFilter - - Local lcColorizedCode, lcCss, lcHtml, lcHtmlBody, lcInitialBr, lcJavaScript, lcLeft, lcMatchLine - Local lcMatchPrefix, lcMatchSuffix, lcMatchWordPrefix, lcMatchWordSuffix, lcReplaceExpression - Local lcRight, lcRightCode, lnEndProc, lnMatchLineLength, lcBr - Local lcMatchLinePrefix, lcMatchLineSuffix, lcReplaceLine - Local lcReplaceLinePrefix, lcReplaceLineSuffix, lnReplaceLineLength - - lcCss = Evl(tcCss, '') - lcJavaScript = Evl(tcJavaScript, '') - - lcMatchLinePrefix = '
' - lcMatchLineSuffix = '
' - lcReplaceLinePrefix = '
' - lcReplaceLineSuffix = '
' - - lcMatchWordPrefix = '' - lcMatchWordSuffix = '' - - If !Empty(tcMatchLine) - - *-- Dress up the code that comes before the match line... - lcBr = '
' - lcLeft = Left(tcCode, tnMatchStart) - lcLeft = Evl(This.HtmlEncode(lcLeft), lcBr) - - *-- Dress up the matchline... - lnMatchLineLength = Len(tcMatchLine) - lnReplaceLineLength = Len(Rtrim(tcReplaceLine)) - - *=====================Colorize the Replace Preview line, if passed ============================== - If !Empty(tcReplaceLine) - lcColorizedCode = This.HtmlEncode(tcReplaceLine) - lcReplaceLine = lcReplaceLinePrefix + lcColorizedCode + lcReplaceLineSuffix - lcMatchLinePrefix = '
' - lcMatchLinePrefix = lcMatchLinePrefix + '' - lcMatchLineSuffix = lcMatchLineSuffix + '' - Else - lcReplaceLine = '' - Endif - - *=====================COLORIZE THE MATCH LINE ============================================================================ - *-- Mark the match WORD(s), so I can find them after the VFP code is colorized... - lcReplaceExpression = '[:GOFISHMATCHWORDSTART:] + lcMatch + [:GOFISHMATCHWORDEND:]' - lcColorizedCode = This.RegExReplace(tcMatchLine, '', lcReplaceExpression, .t.) - - lcColorizedCode = This.HtmlEncode(lcColorizedCode) - - *-- Next, add tags around previously marked match Word(s) - lcColorizedCode = Strtran(lcColorizedCode, ':GOFISHMATCHWORDSTART:', lcMatchWordPrefix) - lcColorizedCode = Strtran(lcColorizedCode, ':GOFISHMATCHWORDEND:', lcMatchWordSuffix) - - *-- Finally, add
tags around the entire Matched Line ------------------- - lcMatchLine = lcMatchLinePrefix + lcColorizedCode + lcMatchLineSuffix - *================================================================================================= - - *-- Dress up the code that comes after the match line... - *-- (Look for ENDPROC to know where to end the code)--- - If tlAlreadyReplaced = .t. - lcRightCode = Substr(tcCode, tnMatchStart + 1 + lnReplaceLineLength) - Else - lcRightCode = Substr(tcCode, tnMatchStart + 1 + lnMatchLineLength) - Endif - - lnEndProc = Atc('ENDPROC', lcRightCode) - - If lnEndProc > 0 - lcRightCode = Substr(lcRightCode, 1, lnEndProc + 6) && It ends at "E" of "ENDPROC", so add 6 to get the rest of the word - Endif - - lcRight = This.HtmlEncode(lcRightCode) - - *!* ******************** Removed 12/02/2015 ***************** - *!* *** JRN 11/14/2015 : Highlight sub-search (filter within same procedure) if it is supplied - *!* If 'C' = Vartype(tcProcFilter) and not Empty(tcProcFilter) - *!* lcLeft = This.HighlightProcFilter(lcLeft, tcProcFilter, lcMatchWordPrefix, lcMatchWordSuffix) - *!* lcRight = This.HighlightProcFilter(lcRight, tcProcFilter, lcMatchWordPrefix, lcMatchWordSuffix) - *!* EndIf - - lcHtmlBody = lcLeft + lcMatchLine + lcReplaceLine + lcRight &&Build the body - - If 'C' = Vartype(tcSearch) and not Empty(tcSearch) - lcHtmlBody = This.HighlightProcFilter(lcHtmlBody, tcSearch, lcMatchWordPrefix, lcMatchWordSuffix) - EndIf - - If 'C' = Vartype(tcStatementFilter) and not Empty(tcStatementFilter) - lcHtmlBody = This.HighlightProcFilter(lcHtmlBody, tcStatementFilter, lcMatchWordPrefix, lcMatchWordSuffix) - EndIf - - If 'C' = Vartype(tcProcFilter) and not Empty(tcProcFilter) - lcHtmlBody = This.HighlightProcFilter(lcHtmlBody, tcProcFilter, lcMatchWordPrefix, lcMatchWordSuffix) - EndIf - - If not Empty(tnTabsToSpaces) - lcHtmlBody = Strtran(lcHtmlBody, Chr[9], Space(tnTabsToSpaces)) - EndIf - lcHtmlBody = Alltrim(lcHtmlBody, 1, chr[13], chr[10]) - Else - - *-- Just a plain blob of VFP code, with no match lines or match words... - *-- Need an empty MatchLine Divs so the JavaScript on the page will find it to scroll the page - lcHtmlBody = '
' + This.HtmlEncode(tcCode) - - Endif - - *-- Build the whole Html by combining the html parts defined above ------------- - Text to lcHtml NoShow TextMerge PRETEXT 3 - - - <> - - - - <> -


- <> - - - EndText - - - Return lcHtml - - - - - ENDPROC - - PROCEDURE getactiveproject - Local lcCurrentProject - - If Type('_VFP.ActiveProject.Name') = 'C' - lcCurrentProject = _VFP.ActiveProject.Name - Else - lcCurrentProject = '' - EndIf - - Return lcCurrentProject - ENDPROC - - PROCEDURE getcurrentdirectory - - Return Addbs(Sys(5) + Sys(2003)) - ENDPROC - - PROCEDURE getdirectories - Lparameters tcPath, tlIncludeSubDirectories - - Local laFiles[1], lnFiles - - This.oDirectories = CreateObject('Collection') - - If tlIncludeSubdirectories - This.BuildDirectoriesCollection(tcPath) - Else - This.oDirectories.Add(tcPath) - If Vartype(This.oProgressBar) = 'O' - lnFiles = ADir(laFiles, '*.*') - This.oProgressBar.nMaxValue = lnFiles - Endif - EndIf - - Return This.oDirectories - - ENDPROC - - PROCEDURE getfiledatetime - Lparameters tcFile - - Local lcFileName, loFile, lcExt - - ldFileDate = {// ::} - lcExt = Upper(JustExt(tcFile)) - - If InList(lcExt, 'SCX', 'VCX', 'FRX', 'MNX', 'LBX') - Try - Use (tcFile) Again In 0 Alias 'GF_GetMaxTimeStamp' Shared - Select Max(TimeStamp) From GF_GetMaxTimeStamp Into Array laMaxDateTime - ldFileDate = Ctot(This.TimeStampToDate(laMaxDateTime)) - Catch - Finally - If Used('GF_GetMaxTimeStamp') - Use in ('GF_GetMaxTimeStamp') - Endif - Endtry - Endif - - If Empty(ldFileDate) - Try - ldFileDate = Fdate(tcFile, 1) - Catch - loFile = This.oFSO.GetFile(tcFile) - ldFileDate = loFile.DateLastModified - EndTry - Endif - - Return ldFileDate - - ENDPROC - - PROCEDURE getfrxobjecttype - Lparameters tnObjType, tnObjCode - - Local lcObjectType - - *-- Details from: http://www.dbmonster.com/Uwe/Forum.aspx/foxpro/4719/Code-meanings-for-Report-Format-ObjType-field - - lcObjectType = '' - - Do Case - Case tnObjType = 1 - lcObjectType = 'Report' - Case tnObjType = 2 - lcObjectType = 'Workarea' - Case tnObjType = 3 - lcObjectType = 'Index' - Case tnObjType = 4 - lcObjectType = 'Relation' - Case tnObjType = 5 - lcObjectType = 'Text' - Case tnObjType = 6 - lcObjectType = 'Line' - Case tnObjType = 7 - lcObjectType = 'Box' - Case tnObjType = 8 - lcObjectType = 'Field' - Case tnObjType = 9 && Band Info - Do Case - Case tnObjCode = 0 - lcObjectType = 'Title' - Case tnObjCode = 1 - lcObjectType = 'PageHeader' - Case tnObjCode = 2 - lcObjectType = 'Column Header' - Case tnObjCode = 3 - lcObjectType = 'Group Header' - Case tnObjCode = 4 - lcObjectType = 'Detail Band' - Case tnObjCode = 5 - lcObjectType = 'Group Footer' - Case tnObjCode = 6 - lcObjectType = 'Column Footer' - Case tnObjCode = 7 - lcObjectType = 'Page Footer' - Case tnObjCode = 8 - lcObjectType = 'Summary' - Endcase - Case tnObjType = 10 - lcObjectType = 'Group' - Case tnObjType = 17 - lcObjectType = 'Picture/OLE' - Case tnObjType = 18 - lcObjectType = 'Variable' - Case tnObjType = 21 - lcObjectType = 'Print Drv Setup' - Case tnObjType = 25 - lcObjectType = 'Data Env' - Case tnObjType = 26 - lcObjectType = 'Cursor Obj' - EndCase - - Return lcObjectType - - - ENDPROC - - PROCEDURE getprocedurestartpositions - #Define CR Chr(13) - #Define LF Chr(10) - - Lparameters tcCode, tcName - - Local loObject As 'Empty' - Local loRegExp As 'VBScript.RegExp' - Local loResult As 'Collection' - Local lcBaseClass, lcClassName, lcMatch, lcName, lcParentClass, lcType, lcWord1, llClassDef - Local llTextEndText, lnEndByte, lnI, lnLFs, lnStartByte, lnX, loException, loMatch, loMatches - - * - * Original code provided by Jim R Nelson circa March 2011 - * Returns a collection indicating the beginning of each procedure / class / etc - * Each member in the collection has these properties: - * .Type == 'Procedure'(Procedures and Functions) - * == 'Class' (Class Definition) - * == 'End Class'(End of Class Definition) - * == 'Method' (Procedures and Functions within a class) - * .StartByte == starts at zero; thus, # of chars preceding start position - * .Name - * .containingclass - - **************************************************************** - loRegExp = This.oRegExForProcedureStartPositions - - loMatches = m.loRegExp.Execute(m.tcCode) - - loResult = Createobject('Collection') - - llClassDef = .F. && currently within a class? - llTextEndText = .F. && currently within a Text/EndText block? - lcClassName = '' - lcParentClass = '' - lcBaseClass = '' - - For lnI = 1 To m.loMatches.Count - - loMatch = m.loMatches.Item(m.lnI - 1) - - With m.loMatch - lnStartByte = .FirstIndex - lcMatch = Chrtran(.Value, CR + LF, ' ') - lcName = Getwordnum(m.lcMatch, Getwordcount(m.lcMatch)) - lcWord1 = Upper(Getwordnum(m.lcMatch, Max(1, Getwordcount(m.lcMatch) - 1))) - Endwith - - Do Case - Case m.llTextEndText - If 'ENDTEXT' = m.lcWord1 - llTextEndText = .F. - Endif - Loop - - Case m.llClassDef - If 'ENDDEFINE' = m.lcWord1 - llClassDef = .F. - lcType = 'End Class' - lcName = m.lcClassName + '.-EndDefine' - lcClassName = '' - lcParentClass = '' - lcBaseClass = '' - Else - lcType = 'Method' - lcName = m.lcClassName + '.' + m.lcName - Endif - - Case ' CLASS ' $ Upper(m.lcMatch) && Notice the spaces in ' CLASS ' - llClassDef = .T. - lcType = 'Class' - lcClassName = Getwordnum(m.lcMatch, 3) - lcParentClass = Getwordnum(m.lcMatch, 5) - lcName = '' - lcBaseClass = '' - If This.IsBaseclass(m.lcParentClass) - lcBaseClass = Lower(m.lcParentClass) - lcParentClass = '' - Endif - - Case 'FUNCTION' = m.lcWord1 - lcType = 'Function' - - Otherwise - lcType = 'Procedure' - - Endcase - - lnLFs = Occurs(Chr(10), m.loMatch.Value) - lnX = 0 - * ignore leading CRLF's, and [spaces and tabs, except on the matched line] - Do While Substr(m.tcCode, m.lnStartByte + 1, 1) $ Chr(10) + Chr(13) + Chr(32) + Chr(9) And m.lnX < m.lnLFs - If Substr(m.tcCode, m.lnStartByte + 1, 1) = Chr(10) - lnX = m.lnX + 1 - Endif - lnStartByte = m.lnStartByte + 1 - Enddo - - loObject = Createobject('GF_Procedure') - - With m.loObject - .Type = m.lcType - .StartByte = m.lnStartByte - ._Name = m.lcName - ._ClassName = m.lcClassName - ._ParentClass = m.lcParentClass - ._BaseClass = m.lcBaseClass - Endwith - - Try - m.loResult.Add(m.loObject, m.lcName) - Catch To m.loException When m.loException.ErrorNo = 2062 Or m.loException.ErrorNo = 11 - *loResult.Add(loObject, lcName + ' ' + Transform(lnStartByte)) - m.loResult.Add(m.loObject, m.lcName + Sys(2015)) - Catch To m.loException - This.ShowErrorMsg(m.loException) - Endtry - - - Endfor - - *** JRN 11/09/2015 : determine ending byte for each entry - lnEndByte = Len(m.tcCode) - For lnI = m.loResult.Count To 1 Step - 1 - loResult[m.lnI].EndByte = m.lnEndByte - lnEndByte = m.loResult[m.lnI].StartByte - Endfor - - Return m.loResult - - ENDPROC - - PROCEDURE getregexforprocedurestartpositions - Local loRegExp as 'VBScript.RegExp' - Local lcPattern - - loRegExp = CreateObject('VBScript.RegExp') - - With loRegExp - .IgnoreCase = .T. - .Global = .T. - .MultiLine = .T. - Endwith - - lcPattern = 'PROC(|E|ED|EDU|EDUR|EDURE)\s+(\w|\.)+' - lcPattern = lcPattern + '|' + 'FUNC(|T|TI|TIO|TION)\s+(\w|\.)+' - lcPattern = lcPattern + '|' + 'DEFINE\s+CLASS\s+\w+\s+\w+\s+\w+' - lcPattern = lcPattern + '|' + 'DEFI\s+CLAS\s+\w+' - lcPattern = lcPattern + '|' + 'ENDD(E|EF|EFI|EFIN|EFINE)\s+' - lcPattern = lcPattern + '|' + 'PROT(|E|EC|ECT|ECTE|ECTED)\s+\w+\s+\w+' - lcPattern = lcPattern + '|' + 'HIDD(|E|EN)\s+\w+\s+\w+' - - With loRegExp - .Pattern = '^\s*(' + lcPattern + ')' - Endwith - - Return loRegExp - ENDPROC - - PROCEDURE getregexforsearch - Local loRegEx as 'VBScript.RegExp' - - loRegEx = Createobject ('VBScript.RegExp') - - Return loRegEx - ENDPROC - - PROCEDURE getreplaceresultobject - Local loResult as 'Empty' - - loResult = CreateObject('Empty') - AddProperty(loResult, 'lError', .f.) - AddProperty(loResult, 'nErrorCode', 0) - AddProperty(loResult, 'nChangeLength', 0) - AddProperty(loResult, 'cNewCode', '') - AddProperty(loResult, 'cReplaceLine', '') - AddProperty(loResult, 'cTrimmedReplaceLine', '') - AddProperty(loResult, 'lReplaced', .f.) - Return loResult - ENDPROC - - PROCEDURE getreplacerisklevel - Lparameters toObject - - Local lcMatchType, lnReturn - - lcMatchType = toObject.MatchType - - lnReturn = 4 && Assume everything is very risky to start with !!! - - Do Case - - Case InList(lcMatchType, MATCHTYPE_NAME, MATCHTYPE_CONSTANT, '', ; - MATCHTYPE_PROPERTY_DEF, MATCHTYPE_PROPERTY_DESC, MATCHTYPE_PROPERTY_NAME, ; - MATCHTYPE_PROPERTY, MATCHTYPE_PROPERTY_VALUE, ; - MATCHTYPE_METHOD_DEF, MATCHTYPE_METHOD_DESC, MATCHTYPE_METHOD ; - ) - - lnReturn = 3 - - Case InList(lcMatchType, MATCHTYPE_INCLUDE_FILE, '', '', '', '', '', ; - '', '', '', ''); - Or ; - toObject.UserField.FileType = 'DBF' - - lnReturn = 2 - - Case InList(lcmatchtype, MATCHTYPE_CODE, MATCHTYPE_COMMENT) or; - (toObject.UserField.IsText and !InList(lcmatchtype, MATCHTYPE_FILENAME, MATCHTYPE_TIMESTAMP)) - - lnReturn = 1 - - EndCase - - Return lnReturn - ENDPROC - - PROCEDURE highlightprocfilter - Lparameters tcCode, tcProcFilter, tcMatchWordPrefix, tcMatchWordSuffix - - #Define VISIBLE_AND '|and|' - #Define VISIBLE_OR '|or|' - - #Define AND_DELIMITER Chr[255] - #Define OR_DELIMITER Chr[254] - - Local laList[1], laValues[1], lcCode, lcMatch, lcProcFilter, lcValue, lnATC, lnCount, lnFilterCount - Local lnI, lnJ - If '|' $ m.tcProcFilter - lcValue = Alltrim(Upper(m.tcProcFilter)) - lcValue = Strtran(m.lcValue, VISIBLE_AND, AND_DELIMITER, 1, 100, 1) - lcValue = Strtran(m.lcValue, VISIBLE_OR, OR_DELIMITER, 1, 100, 1) - lcValue = Strtran(m.lcValue, '|', OR_DELIMITER, 1, 100, 1) - Else - lcValue = m.tcProcFilter - Endif - - lnFilterCount = Alines(laValues, m.lcValue, 0, OR_DELIMITER, AND_DELIMITER) - lcCode = m.tcCode - - For lnJ = 1 To m.lnFilterCount - lcProcFilter = m.laValues[m.lnJ] - lnCount = 0 - For lnI = 1 To 10000 - lnATC = Atc(m.lcProcFilter, m.tcCode, m.lnI) - If m.lnATC = 0 - Exit - Endif - lcMatch = Substr(m.tcCode, m.lnATC, Len(m.lcProcFilter)) - * items in this array are all case-sensitive combinations found - * so that the STRTRAN farther down keeps the original case - If m.lnCount = 0 Or Ascan(m.laList, m.lcMatch, 1) = 0 - lnCount = m.lnCount + 1 - Dimension m.laList[m.lnCount] - laList[m.lnCount] = m.lcMatch - Endif - Endfor - - For lnI = 1 To m.lnCount - lcMatch = m.laList[m.lnI] - lcCode = Strtran(m.lcCode, m.lcMatch, m.tcMatchWordPrefix + m.lcMatch + m.tcMatchWordSuffix, 1, 1000) - Endfor - Endfor - - Return m.lcCode - ENDPROC - - PROCEDURE htmlencode - Lparameters tcCode - - Local loHTML as 'htmlcode' OF 'mhhtmlcode.prg' - Local lcHTML - - *-- See: http://www.universalthread.com/ViewPageNewDownload.aspx?ID=9679 - *-- From: Michael Helland - mobydikc@gmail.com - - loHTML = NEWOBJECT('htmlcode', 'mhhtmlcode.prg') - lcHTML = loHtml.PrgToHtml(tcCode) - - Return lcHtml - - - - ENDPROC - - PROCEDURE incrementprogressbar - Lparameters tnAmount - - If Vartype(This.oProgressBar) = 'O' - This.oProgressBar.nValue = This.oProgressBar.nValue + tnAmount - Endif - - ENDPROC - - PROCEDURE Init - #INCLUDE ..\BuildGoFish.h - - Lparameters tlPreserveExistingResults - - This.cVersion = GOFISH_VERSION && Comes from include file above - This.oFSO = CREATEOBJECT("Scripting.FileSystemObject") - This.oRegExForSearch = This.GetRegExForSearch() - - If Isnull(This.oRegExForSearch) - Messagebox('Error creating oRegExForSearch') - Return .F. - Endif - - This.oRegExForProcedureStartPositions = This.GetRegExForProcedureStartPositions() - If Isnull(This.oRegExForProcedureStartPositions) - Messagebox('Error creating oRegExForProcedureStartPositions') - Return .F. - Endif - - This.BuildProjectsCollection() - - This.oSearchOptions = Createobject(This.cSearchOptionsClass) - - This.oSearchErrors = CreateObject('Collection') - This.oReplaceErrors = CreateObject('Collection') - - *-- An FFC class used to generate a TimeStamp so the TimeStamp field can be updated when replacing code in a table based file. - This.oFrxCursor = Newobject('FrxCursor', Home() + '\ffc\_FrxCursor') - - This.PrepareForSearch() - ENDPROC - - PROCEDURE isbaseclass && Returns .t. if passed string value is a native FoxPro baseclass. - Lparameters tcString - - Local lcBaseclasses - - *-- Note: Each word below contains a space at the beginning and end of the word so the final match test - *-- wil not return .t. for partial matches. - - Text to lcBaseclasses NoShow - CheckBox - Collection - Column - ComboBox - CommandButton - CommandGroup - Container - Control - Cursor - CursorAdapter - Custom - DataEnvironment - EditBox - Empty - Exception - Form - FormSet - Grid - Header - Hyperlink - Image - Label - Line - ListBox - OLEBound - OLEContainer - OptionButton - OptionGroup - Page - PageFrame - ProjectHook - Relation - ReportListener - Separator - SessionObject - Shape - Spinner - TextBox - Timer - ToolBar - XMLAdapter - XMLField - XMLTable - EndText - - Return Upper((' ' + Alltrim(tcString) + ' ')) $ Upper(lcBaseclasses) - ENDPROC - - PROCEDURE iscomment && return .t. if "*" .or. "note" - Lparameters tcLine - - Local lcLine, lnCount, loMatches, loRegEx - - lLReturn = This.IsFullLineComment(tcLine) - - If llReturn = .t. - Return .t. - Endif - - - - *-- Look for a match BEFORE any && comment characters - - lnCount = Atc('&' + '&', tcLine) - - If lnCount > 0 - lcLine = Left(tcLine, lnCount - 1) - loMatches = This.oRegExForSearch.Execute(lcLine) - - If loMatches.Count > 0 - Return .f. - Endif - Else - Return .f. - Endif - - - - - ENDPROC - - PROCEDURE iscontinuation - #Define Tab Chr[9] - - Lparameters lcLine - - Local lnAT - If ';' = Right(Alltrim(m.lcLine, 1, ' ', Tab, CR, LF), 1) - Return .T. - Else - lnAT = Rat('&' + '&', m.lcLine) - If m.lnAT > 0 And Right(Alltrim(Left(m.lcLine, m.lnAT - 1), 1, ' ', Tab), 1) = ';' - Return .T. - Endif - Endif - Return .F. - - ENDPROC - - PROCEDURE isfiletypeincluded && A method that indicates if the passed filename is to be included in the search, based on the checkbox groups on the form. - Lparameters tcFileType - - Local lcFileType, llReturn, loOptions - - lcFileType = Upper(tcFileType) - loOptions = This.oSearchOptions - - If loOptions.lIncludeAllFileTypes - Return .t. - EndIf - - If !Empty(JustExt(This.oSearchOptions.cFileTemplate)) - Return This.MatchTemplate(tcFileType, JustExt(This.oSearchOptions.cFileTemplate)) - Endif - - Do Case - *-- Table-based Files -------------------------------------- - Case lcFileType = 'SCX' and loOptions.lIncludeSCX - llReturn = .t. - Case lcFileType = 'VCX' and loOptions.lIncludeVCX - llReturn = .t. - Case lcFileType = 'FRX' and loOptions.lIncludeFRX - llReturn = .t. - Case lcFileType = 'DBC'and loOptions.lIncludeDBC - llReturn = .t. - Case lcFileType = 'MNX' and loOptions.lIncludeMNX - llReturn = .t. - Case lcFileType = 'LBX' and loOptions.lIncludeLBX - llReturn = .t. - Case lcFileType = 'PJX' and loOptions.lIncludePJX - llReturn = .t. - - *-- Code based files ---------------------------------- - Case lcFileType = 'PRG' and loOptions.lIncludePRG - llReturn = .t. - Case lcFileType = 'SPR' and loOptions.lIncludeSPR - llReturn = .t. - Case lcFileType = 'MPR' and loOptions.lIncludeMPR - llReturn = .t. - Case 'HTM' $ lcFileType and loOptions.lIncludeHTML - llReturn = .t. - Case lcFileType = 'H' and loOptions.lIncludeH - llReturn = .t. - Case lcFileType = 'ASP' and loOptions.lIncludeASP - llReturn = .t. - Case lcFileType = 'INI' and loOptions.lIncludeINI - llReturn = .t. - Case lcFileType = 'JAVA' and loOptions.lIncludeJAVA - llReturn = .t. - Case lcFileType = 'JSP' and loOptions.lIncludeJSP - llReturn = .t. - Case lcFileType = 'XML' and loOptions.lIncludeXML - llReturn = .t. - Case lcFileType = 'TXT' and loOptions.lIncludeTXT - llReturn = .t. - - *-- Lastly, is it match with other includes??? - Case (lcFileType $ Upper(loOptions.cOtherIncludes)) and !Empty(loOptions.cOtherIncludes) - llReturn = .t. - Otherwise - llReturn = .f. - Endcase - - Return llReturn - ENDPROC - - PROCEDURE isfulllinecomment - Lparameters tcLine - - *-- See if the entire line is a comment - Local loMatches, loRegEx - - loRegEx = This.GetRegExForSearch() - loRegEx.Pattern = '^\s*(\*|NOTE|&' + '&)' - - loMatches = loRegEx.Execute(tcLine) - - If loMatches.Count > 0 - Return .t. - Else - Return .f. - Endif - - ENDPROC - - PROCEDURE istextfile && Pass in a full filename or a file extension, and it will return .t. if it is a text file, or .f. if it is a table-based file. - Lparameters tcFile - - Local lcExt, llIsTextFile - - If Empty(tcFile) - Return .F. - EndIf - - lcExt = Upper(JustExt(tcFile)) - - llIsTextFile = !(lcExt $ this.cTableExtensions) - - Return llIsTextFile - - - - ENDPROC - - PROCEDURE loadoptions && Pass in XML File to load up search options. - Lparameters tcFile - - Local loMy as 'My' OF 'My.vcx' - Local laProperties[1], lcProperty - - If !File(tcFile) - Return .f. - EndIf - - *-- Get an array of properties that are on the SearchOptions object - AMembers(laProperties, This.oSearchOptions, 0, 'U') - - *-- Load settings from file... - loMy = Newobject('My', 'My.vcx') - loMy.Settings.Load(tcFile) - - *--- Scan over Object properties, and look for a corresponding props on the My Settings object (if present) - With loMy.Settings - For x = 1 to Alen(laProperties) - lcProperty = laProperties[x] - If Type('.' + lcProperty) <> 'U' - Store Evaluate('.' + lcProperty) to ('This.oSearchOptions.' + lcProperty) - EndIf - Endfor - Endwith - - *-- My.Settings stores Dates as DateTimes, so I need to convert them to just Date datatypes - Try - This.oSearchOptions.dTimeStampFrom = Ttod(this.oSearchOptions.dTimeStampFrom) - Catch - This.oSearchOptions.dTimeStampFrom = {} - Endtry - - Try - This.oSearchOptions.dTimeStampTo = Ttod(this.oSearchOptions.dTimeStampTo) - Catch - This.oSearchOptions.dTimeStampTo = {} - Endtry - - Return .t. - - - ENDPROC - - PROCEDURE lreadytoreplace_access - llReturn = This.nMatchLines > 0 ; - and (!Empty(This.oSearchOptions.cReplaceExpression) or This.oSearchOptions.lAllowBlankReplace) ; - and !This.lFileHasBeenEdited - - Return llReturn - - - ENDPROC - - PROCEDURE ltimestampdataprovided_access - If This.oSearchOptions.lTimeStamp and !Empty(this.oSearchOptions.dTimeStampFrom) and !Empty(this.oSearchOptions.dTimeStampTo) && If both dates are supplied - Return .t. - Else - Return .f. - EndIf - - ENDPROC - - PROCEDURE matchtemplate - Lparameters tcString, tcTemplate - - *-- Supports normal wildcard matching with * and ?, just like old DOS matching. - - Local lcString, lcTemplate, llMatch, lnLength - - If Empty(tcTemplate) or tcTemplate = '*' - Return .t. - EndIf - - lcString= Upper(Alltrim(JustStem(tcString))) - lcTemplate = Upper(Alltrim((tcTemplate))) - - llMatch = Like(lcTemplate, lcString) - - Return llMatch - - - * * Removed 04/08/2012 - - - * Do Case - * Case (Left(lcTemplate, 1) = '*' and Right(lcTemplate, 1) = '*') - * lcTemplate = Alltrim(lcTemplate, '*') - * llMatch = lcTemplate $ lcString - * Case Atc('*', lcTemplate) = 0 - * llMatch = (lcTemplate == lcString) - * Case Right(lcTemplate, 1) = '*' - * lnLength = Len(lcTemplate) - 1 - * lcTemplate = Left(lcTemplate, lnLength) - * llMatch = Left(lcString, lnLength) = lcTemplate - * Case Left(lcTemplate, 1) = '*' - * lnLength = Len(lcTemplate) - 1 - * lcTemplate= Right(lcTemplate, lnLength) - * llMatch = Right(lcString, lnLength) = lcTemplate - * Endcase - - * Return llMatch - - - ENDPROC - - PROCEDURE migratereplacedetailtable - *-- Migrate any exitisting Replace Detail Table up to ver 4.3.022 ---- - Local lcCsr, lcDataType, lcFieldName, lcTable, llSuccess, lnSelect - - lcTable = This.cReplaceDetailTable - lcCsr = 'csrGF_ReplaceSchemaTest' - - If File(lcTable) - lnSelect = Select() - Select * From (lcTable) Where 0 = 1 Into Cursor &lcCsr - - *** JRN 11/09/2015 : add field ProcEnd if not already there - This.AddFieldToReplaceTable(lcTable, lcCsr, 'ProcEnd', 'I') - This.AddFieldToReplaceTable(lcTable, lcCsr, 'ProcCode', 'M') - This.AddFieldToReplaceTable(lcTable, lcCsr, 'Statement', 'M') - This.AddFieldToReplaceTable(lcTable, lcCsr, 'StatementStart', 'I') - This.AddFieldToReplaceTable(lcTable, lcCsr, 'FirstMatchInStatement', 'L') - This.AddFieldToReplaceTable(lcTable, lcCsr, 'FirstMatchInProcedure', 'L') - - Use In &lcCsr - Select (lnSelect) - Endif - - - ENDPROC - - PROCEDURE opentableforreplace - Lparameters tcFileToOpen, tcCursor, tnResultId - - lnSelect = Select() - - If Used(tcCursor) - Use in (tcCursor) - EndIf - - Select 0 - - Try - Use (tcFileToOpen) Exclusive Alias (tcCursor) - llReturn = .t. - Catch - This.SetReplaceError('Cannot open file for exclusive use: ' + Chr(13) + Chr(13), tcFileToOpen, tnResultId) - Select (lnSelect) - llReturn = .f. - EndTry - - Return llReturn - - ENDPROC - - PROCEDURE prepareforsearch - Clear Typeahead - - This.lEscPress = .F. - This.lFileNotFound = .F. - This.nMatchLines = 0 - This.nFileCount = 0 - This.nFilesProcessed = 0 - This.nSearchTime = 0 - This.lResultsLimitReached = .F. - - This.PrepareRegExForSearch() - - This.ClearResultsCursor() - This.ClearResultsCollection() - - This.ClearReplaceSettings() - - This.oSearchErrors = CreateObject('Collection') - This.oReplaceErrors = CreateObject('Collection') - This.oDirectories = CreateObject('Collection') - - This.SetFilesToSkip() - - ENDPROC - - PROCEDURE prepareregexforreplace - Local lcPattern - - lcPattern = this.oSearchOptions.cEscapedSearchExpression - - *If !this.oSearchOptions.lRegularExpression - *-- Need to trim off the pre- and post- wild card characters so we can get back to just the search phrase - If Left(lcPattern, 2) = '.*' - lcPattern = Substr(lcPattern, 3) - EndIf - - If Right(lcPattern, 2) = '.*' - lcPattern = Left(lcPattern, Len(lcPattern) - 2) - EndIf - - *EndIf - - this.oRegExForSearch.Pattern = lcPattern - - ENDPROC - - PROCEDURE prepareregexforsearch - Local lcPattern, lcRegexPattern, lcSearchExpression, loRegEx - - loRegEx = This.oRegExForSearch - lcSearchExpression = This.oSearchOptions.cSearchExpression - - With loRegEx - - .IgnoreCase = ! This.oSearchOptions.lMatchCase - .Global = .T. - .MultiLine = .T. - - If This.oSearchOptions.lRegularExpression - - If Left(lcSearchExpression, 1) != '^' - lcSearchExpression = '.*' + lcSearchExpression - Endif - - If Right(lcSearchExpression, 1) != '$' - lcSearchExpression = lcSearchExpression + '.*' - Endif - - lcPattern = lcSearchExpression - - Else - - lcPattern = This.EscapeSearchExpression(lcSearchExpression) - - If This.oSearchOptions.lMatchWholeWord - lcPattern = '.*\b' + lcPattern + '\b.*' - Else - lcPattern = '.*' + lcPattern + '.*' - EndIf - - EndIf - - This.oSearchOptions.cEscapedSearchExpression = lcPattern - - *-- Need to add some extra markings around lcPattern to use it as the lcRegExpression - lcRegexPattern = lcPattern - - If Left(lcRegexPattern, 1) != '^' - lcRegexPattern = '^' + lcRegexPattern - Endif - - If Right(lcRegexPattern, 1) != '$' - lcRegexPattern= lcRegexPattern + '$' - Endif - - .Pattern = lcRegexPattern - - Endwith - - - - ENDPROC - - PROCEDURE processinlinecomments - Lparameters toObject - - Local lcCode, lcComment, lcMatchType, lcTrimmedMatchLine, lnCount, loCodeMatches, loCommentMatches - - lcTrimmedMatchLine = toObject.TrimmedMatchline - lcMatchType = toObject.MatchType - - lnCount = Atc('&' + '&', lcTrimmedMatchLine) - - If lnCount > 0 and This.oSearchOptions.lSearchInComments - lcCode = Left(lcTrimmedMatchLine, lnCount - 1) - lcComment = Substr(lcTrimmedMatchLine, lnCount) - loCodeMatches = This.oRegExForSearch.Execute(lcCode) - loCommentMatches = This.oRegExForSearch.Execute(lcComment) - - If loCodeMatches.count > 0 and loCommentMatches.count > 0 - toObject.MatchType = MATCHTYPE_COMMENT - This.CreateResult(toObject) - lcMatchType = toObject.UserField.MatchType && Restore to UserField MatchType for further - Else - lcMatchType = Iif(loCommentMatches.count > 0, MATCHTYPE_COMMENT, toObject.MatchType) - EndIf - Endif - - toObject.MatchType = lcMatchType - - ENDPROC - - PROCEDURE processsearchresult - Lparameters toObject - - Local lcMatchType, lcSaveObjectName, loObject - Local lcBaseClass, lcContainingClass, lcMethodName, lcParentClass, lcSave_Baseclass - - lcMatchType = toObject.UserField.MatchType - - *-- Store these so we can revert back after processing, becuase it's important to reset back - *-- so any further matches in the code can be processed correctly - With toObject.UserField - lcSaveObjectName = ._Name - lcSave_Baseclass = ._Baseclass - lcBaseClass = ._Baseclass - lcMethodName = toObject.MethodName - lcParentClass = ._ParentClass - lcContainingClass = .ContainingClass - Endwith - - If lcMatchType # MATCHTYPE_FILENAME - loObject = This.AssignMatchType(toObject) - Else - loObject = toObject - Endif - - If !IsNull(loObject) - This.CreateResult(loObject) - Endif - - With toObject.UserField - ._Name = lcSaveObjectName - ._Baseclass = lcSave_Baseclass - ._Baseclass = lcBaseClass - toObject.MethodName = lcMethodName - ._ParentClass = lcParentClass - .ContainingClass = lcContainingClass - Endwith - - ENDPROC - - PROCEDURE reduceprogressbarmaxvalue - Lparameters tnReduction - - Try - This.oProgressBar.nMaxValue = This.oProgressBar.nMaxValue - tnReduction - Catch - EndTry - - ENDPROC - - PROCEDURE regexreplace - * See: http://www.west-wind.com/wconnect/weblog/ShowEntry.blog?id=605 - ************************************************************************ - * wwUtils :: Replace - **************************************** - *** Function: Replaces the replace string or expression for - *** any RegEx matches found in a source string - *** Assume: NOTE: very different from native REplace method - *** Pass: lcSource - *** lcRegEx - *** lcReplace - String or Expression to replace with - *** llIsExpression - if .T. lcReplace is EVAL()'d - *** - *** Expression can use a value of lcMatch to get the - *** current matched string value. - *** Return: updated string - ************************************************************************ - Lparameters lcSource, lcRegEx, lcReplace, llIsExpression) - Local loMatches, lnX, loMatch, lcRepl - - This.PrepareRegExForSearch() - This.PrepareRegExForReplace() - - loRegex = this.oRegExForSearch - - If !Empty(lcRegEx) - loRegEx.Pattern = lcRegEx - EndIf - - loMatches = loRegEx.Execute(lcSource) - - lnCount = loMatches.Count - - If lnCount = 0 - Return lcSource - Endif - - lcRepl = lcReplace - - *** Note we have to go last to first to not hose relative string indexes of the match - For lnX = lnCount - 1 To 0 Step - 1 - loMatch = loMatches.Item(lnX) - lcMatch = loMatch.Value - If llIsExpression - lcRepl = Eval(lcReplace) &&Evaluate dynamic expression each time - Endif - lcSource = Stuff(lcSource, loMatch.FirstIndex + 1, loMatch.Length, lcRepl) - Endfor - - Return lcSource - - - ENDPROC - - PROCEDURE renamecolumn - Lparameters tcTable, tcOldFieldName, tcNewFieldName - - Local lcAlias - - lcAlias = JustStem(tcTable) - - If Empty(Field(tcNewFieldName, lcAlias)) And !Empty(Field(tcOldFieldName, lcAlias)) - Try - Alter Table (lcAlias) Rename Column (tcOldFieldName) To (tcNewFieldName) - Catch - Endtry - Endif - - - ENDPROC - - PROCEDURE replacefromcurrentrow && This method performs a Replace operation on the current row of the passed cursor name. - Lparameters tcCursor, tcReplaceLine - - Local lcColumn, lcFileToModify, lnCurrentRecno, lnMatchStart, lnProcStart, lnResultRecno, lnSelect - Local loReplace, loResult - - lnSelect = Select() - Select (tcCursor) - lnCurrentRecno = Recno() - - If process = .F. && Could be that the row was previous marked for replace, and now it has been cleared. - Replace ReplaceLine With '' In (tcCursor) - Replace TrimmedReplaceLine With '' In (tcCursor) - Select(lnSelect) - Return GF_REPLACE_RECORD_IS_NOT_MARKED_FOR_REPLACE - Endif - - If replaced = .t. && If it's already been processed - Select(lnSelect) - Return GF_REPLACE_FILE_HAS_ALREADY_BEEN_PROCESSED - Endif - - If !File(filepath) - This.SetReplaceError('File not found:', filepath, Id) - Select(lnSelect) - Return GF_REPLACE_FILE_NOT_FOUND - EndIf - - *!* If !Empty(tcReplaceLine) && If doing a "Replace Line", then the regular History - *!* This.CreateReplaceHistoryRecord() - *!* Endif - - If This.oSearchOptions.lBackup - llBackedUp = This.BackupFile(filepath, this.nReplaceHistoryId) - If !llBackedUp - Select(lnSelect) - Return GF_REPLACE_BACKUP_ERROR - Endif - Endif - - This.PrepareRegExForSearch() && This will setup the Search part of the RegEx - This.PrepareRegExForReplace() && This will setup the Replace part of the RegEx - - Scatter Name loReplace memo - - If This.IsTextFile(filepath) - loResult = This.ReplaceInTextFile(loReplace, tcReplaceLine) - Else - loResult = This.ReplaceInTable(loReplace, tcReplaceLine) - Endif - - If !loResult.lError - *-- We must update all match result rows that are of the same source line as this row. - *-- The reason is that search matches can result in multiple rows, and we can't process them again. - lcFileToModify = filepath - lnResultRecno = recno - lnProcStart = procstart - lnMatchStart = matchstart - lcColumn = column - - Update (tcCursor) ; - Set TrimmedReplaceLine = loResult.cTrimmedReplaceLine, ; - ReplaceLine = loResult.cReplaceLine ; - Where filepath == lcFileToModify And ; - Recno = lnResultRecno And ; - Column = lcColumn And ; - matchstart = lnMatchStart - - Try - Goto (lnCurrentRecno) - Catch - EndTry - - If loResult.lReplaced = .t. - This.nReplaceCount = This.nReplaceCount + 1 - Endif - - *-- Removed this in 4.3.014. We *do* need to re-compile. - *If !Empty(tcReplaceLine) - This.Compile(filepath) - *Endif - - This.UpdateCursorAfterReplace(tcCursor, loResult) - - lnReturn = GF_REPLACE_SUCCESS - - Else - - lnReturn = loResult.nErrorCode - - EndIf - - Select (lnSelect) - - Return lnReturn - ENDPROC - - PROCEDURE replaceincode - Lparameters toReplace, tcReplaceLine - - * tcReplaceLine, if passed, will be used to replace the entire oringinal match line, - * rather than using the RexEx replace with cReplaceExpression on the original line. - - * Notes: - * For the Replace, the pattern on the regex must already be set (use PrepareRegExForReplace) - * Note: Unless a full replacement line is passed in tcReplaceLine, ALL instances of the pattern will be replaced on the tcMatchLine - - Local lcLeft, lcLineFromFile, lcNewCode, lcReplaceExpression, lcReplaceLine, lcRight - Local lcCode, lcMatchLine, lnLineToChangeLength, lnMatchStart, loRegEx, loResult - - loResult = This.GetReplaceResultObject() - lcCode = toReplace.code - - lcMatchLine = Left(toReplace.matchline, toReplace.matchlen) - - lnMatchStart = toReplace.MatchStart - lnLineToChangeLength = Len(lcMatchLine) - - lcLineFromFile = Substr(lcCode, lnMatchStart + 1, lnLineToChangeLength) - - If lcLineFromFile != lcMatchLine && Ensure that line from file still matches the passed in line from the orginal search!! - This.SetReplaceError('Source file has changed since original search:', Alltrim(toReplace.FilePath), toReplace.Id) - loResult.lError = .t. - Return loResult - EndIf - - lcLeft = Left(lcCode, lnMatchStart) - - *-- IMPORTANT CODE HERE... Revised code line is determined here!!!! ------------- - If Empty(tcReplaceLine) - loRegEx = this.oRegExForSearch - lcReplaceExpression = this.oSearchOptions.cReplaceExpression - Do Case - Case This.nReplaceMode = 1 - lcReplaceLine = loRegEx.Replace(lcMatchLine, lcReplaceExpression) - Case This.nReplaceMode = 2 - lcReplaceLine = '' - Case This.nReplaceMode = 3 and !Empty(This.cReplaceUDFCode) - lcReplaceLine = This.ReplaceLineWithUDF(lcMatchLine) - Otherwise - lcReplaceLine = lcMatchLine - Endcase - Else - lcReplaceLine = tcReplaceLine - Endif - - lcRight = Substr(lcCode, lnMatchStart + 1 + lnLineToChangeLength) - - *--Added this in 4.3.014 to handle case of deleting the entire line - If Empty(lcReplaceLine) - lcRight = Ltrim(lcRight, 0, Chr(10)) && Need to strip off initial Chr(10) of Right hand code block - Endif - - lcNewCode = lcLeft + lcReplaceLine + lcRight - - With loResult - .nChangeLength = Len(lcReplaceLine) - Len(lcMatchLine) - *--Added this in 4.3.014 to handle case of deleting the entire line - If Empty(lcReplaceLine) - .nChangeLength = .nChangeLength - 1 && to account for the Chr(10) we stripped off above - Endif - .cNewCode = lcNewCode - .cReplaceLine = lcReplaceLine - .cTrimmedReplaceLine = This.TrimWhiteSpace(.cReplaceLine) - EndWith - - toReplace.ReplaceLine = loResult.cReplaceLine - toReplace.TrimmedReplaceLine = loResult.cTrimmedReplaceLine - - Return loResult - - - - ENDPROC - - PROCEDURE replaceintable - Lparameters toReplace, tcReplaceLine - - Local lcColumn, lcFileToModify, lcMatchLine, lcReplaceCursor, llTableWasOpened, lnMatchStart - Local lnRecno, lnResultId, lnSelect, loResult - - lcFileToModify = Alltrim(toReplace.filepath) - lcMatchLine = Left(toReplace.matchline, toReplace.matchlen) - lnMatchStart = toReplace.matchstart - lnResultId = toReplace.Id - lcColumn = Alltrim(toReplace.column) - lnRecno = toReplace.Recno - - lcReplaceCursor = 'ReplaceCursor' - lnSelect = Select() - - loResult = This.GetReplaceResultObject() - - *!* If !File(lcFileToModify) - *!* This.SetReplaceError('File not found:', lcFileToModify, lnResultId) - *!* loResult.lError = .t. - *!* loResult.nErrorCode = GF_REPLACE_FILE_NOT_FOUND - *!* Endif - - If !This.OpenTableForReplace(lcFileToModify, lcReplaceCursor, lnResultId) - loResult.lError = .t. - loResult.nErrorCode = GF_REPLACE_UNABLE_TO_USE_TABLE_FOR_REPLACE - Else - llTableWasOpened = .t. - EndIf - - If !loResult.lError - Try - Goto lnRecno - Catch - This.SetReplaceError('Error locating record in file:', lcFileToModify, lnResultId) - loResult.lError = .t. - loResult.nErrorCode = GF_REPLACE_ERROR_LOCATING_RECORD_IN_FILE - EndTry - Endif - - If !loResult.lError - toReplace.code = Evaluate(lcReplaceCursor + '.' + lcColumn) - loResult = This.ReplaceInCode(toReplace, tcReplaceLine) - Endif - - *-- Big step here... Replace code in actual record!!! (If not in Preview Mode) - If !loResult.lError and This.oSearchOptions.lPreviewReplace = .f. - Replace (lcColumn) With loResult.cNewCode in (lcReplaceCursor) && Update code in table - If Type('timestamp') != 'U' - Replace timestamp with This.oFrxCursor.getFrxTimeStamp() in (lcReplaceCursor) - EndIf - loResult.lReplaced = .t. - This.CreateReplaceDetailRecord(toReplace) - Endif - - If llTableWasOpened - Use && Close the table based file we opened above - Endif - - Select (lnSelect) - - Return loResult - - ENDPROC - - PROCEDURE replaceintextfile - Lparameters toReplace, tcReplaceLine - - Local lcFileToModify - - lcFileToModify = Alltrim(toReplace.filepath) - - Local lcOldCode, loReseult, loResult - - *!* If !File(lcFileToModify) - *!* This.SetReplaceError('File not found:', lcFileToModify, lnResultId) - *!* loResult = This.GetReplaceResultObject() - *!* loResult.lError = .t. - *!* Return loResult - *!* EndIf - - toReplace.code = FileToStr(lcFileToModify) - loResult = This.ReplaceInCode(toReplace, tcReplaceLine) - - If loResult.lError or This.oSearchOptions.lPreviewReplace = .t. - Return loResult - EndIf - - *== Big step here... About to replace old file with the new code!!! - Try - If !Empty(loResult.cNewCode) && Do not dare replace the file with and empty string. Something must be wrong! - StrToFile(loResult.cNewCode, lcFileToModify, 0) - loResult.lReplaced = .t. - This.CreateReplaceDetailRecord(toReplace) - EndIf - Catch - This.SetReplaceError('Error saving file: ', lcFileToModify, toReplace.Id) - EndTry - - Return loResult - - - - - - - - - - ENDPROC - - PROCEDURE replaceline - Lparameters tcCursor, tnId, tcReplaceLine - - Local lnSelect, lnLastChar, llReturn - - lnSelect = Select() - - lcReplaceLine = tcReplaceLine - lnLastChar = Asc(Right(lcReplaceLine, 1)) - - If lnLastChar = 10 && Editbox will add a Chr(10) so this has to be stripped off - lcReplaceLine = Left(lcReplaceLine, Len(lcReplaceLine) - 1) - Endif - - lnLastChar = Asc(Right(lcReplaceLine, 1)) - - If lnLastChar <> 13 and !Empty(lcReplaceLine) && Make sure user has not stripped of the Chr(13) that came with the MatchLine - lcReplaceLine = lcReplaceLine + Chr(13) - Endif - - Select(tcCursor) - Locate For Id = tnId - - If Found() - - If replaced = .T. - Return .t. - Endif - - Replace Process With .T. In (tcCursor) - - This.CreateReplaceHistoryRecord() - - lnReturn = This.ReplaceFromCurrentRow(tcCursor, lcReplaceLine) - - If lnReturn >= 0 - This.UpdateReplaceHistoryRecord() - llReturn = .t. - Else - llReturn = .f. - Endif - - Else - - This.SetReplaceError('Error locating record in call to ReplaceLine() method.', '', tnId) - llReturn = .f. - - EndIf - - Return llReturn - ENDPROC - - PROCEDURE replacelinewithudf - Lparameters tcMatchLine - - Local lcMatchLine, lcReplaceLine, llCR - - lcMatchLine = tcMatchLine - - *-- If there is a CR at the end, pull it off before calling the UDF. Will add back later... - If Right(tcMatchLine,1) = Chr(13) - llCR = .t. - lcMatchLine = Left(tcMatchLine, Len(tcMatchLine) -1) - Endif - - *-- Call the UDF --------------- - Try - lcReplaceLine = Execscript(This.cReplaceUDFCode, lcMatchLine) - Catch - lcReplaceLine = lcMatchLine && Keep the line the same if UDF failed - Finally - EndTry - - If Vartype(lcReplaceLine) <> 'C' - lcReplaceLine = lcMatchLine - Endif - - If llCR - lcReplaceLine = lcReplaceLine + Chr(13) - Endif - - Return lcReplaceLine - ENDPROC - - PROCEDURE replacemarkedrows && This method scans of the rows in passed cursor, and calls the ReplaceFromCurrentRow() method for each marked row. - Lparameters tcCursor - - Local lcFile, lcFileList, lcLastFile, lcReplaceExpression, lcSearchExpression, lnResult, lnSelect - Local lnShift - - This.nReplaceCount = 0 - This.nReplaceFileCount = 0 - - lcSearchExpression = Alltrim(This.oSearchOptions.cSearchExpression) - lcReplaceExpression = Alltrim(This.oSearchOptions.cReplaceExpression) - lnShift = Len(lcReplaceExpression) - Len(lcSearchExpression) - - This.oReplaceErrors = Createobject('Collection') - - If Empty(This.oSearchOptions.cReplaceExpression) And !This.oSearchOptions.lAllowBlankReplace - This.SetReplaceError('Replace expression is blank, but ALLOW BLANK flag is not set.') - Return .F. - Endif - - lnSelect = Select() - Select (tcCursor) - - This.CreateReplaceHistoryRecord() - - lcLastFile = '' - - Scan - - If Vartype(This.oProgressBar) = 'O' - This.oProgressBar.nValue = This.oProgressBar.nValue + 1 - EndIf - - lnResult = This.ReplaceFromCurrentRow(tcCursor) - - *-- Skip to next file if have had any of there errors: - If lnResult = GF_REPLACE_BACKUP_ERROR or; - lnResult = GF_REPLACE_UNABLE_TO_USE_TABLE_FOR_REPLACE or ; - lnResult = GF_REPLACE_FILE_NOT_FOUND - lcFile = filepath - Locate for filepath <> lcFile rest - If !Bof() - Skip -1 - Endif - EndIf - - If filepath <> lcLastFile and !Empty(lcLastFile) && If we are on a new file, then compile the previous file - This.Compile(lcLastFile) - lcLastFile = '' - Endif - - If lnResult = GF_REPLACE_SUCCESS - lcLastFile = Filepath - Endif - - Endscan - - *-- Must look at compiling one last time now that loop has ended. - If filepath <> lcLastFile and !Empty(lcLastFile) && If we are on a new file, then compile the previous file - This.Compile(lcLastFile) - Endif - - - This.UpdateReplaceHistoryRecord() - - Select (lnSelect) - - This.ShowWaitMessage('Replace Done.') - - - ENDPROC - - PROCEDURE restoredefaultdir - Cd (this.cInitialDefaultDir) - ENDPROC - - PROCEDURE saveoptions - Lparameters tcFile - - Local loMy as 'My' OF 'My.vcx' - Local laProperties[1], lcProperty - - loMy = Newobject('My', 'My.vcx') - - AMembers(laProperties, This.oSearchOptions, 0, 'U') - - With loMy.Settings - - For x = 1 to Alen(laProperties) - lcProperty = laProperties[x] - If !InList(lcProperty, '_MEMBERDATA', 'CPROJECTS') - .Add(lcProperty, Evaluate('This.oSearchOptions.' + lcProperty)) - EndIf - Endfor - - .Save(tcFile) - - Endwith - - ENDPROC - - PROCEDURE searchfinished && Called by SearchInPath() and SearchInProject() once they are finished. This will update some class properties, end the timer, and other cleanup stuff. - Lparameters tnSelect - - This.lResultsLimitReached = (This.nMatchLines >= This.oSearchOptions.nMaxResults) - - This.EndTimer() - - Inkey(.10) && Delay is needed to allow Progress Bar to fully update before it disappears. - This.StopProgressBar() - - If This.nMatchLines = 0 And This.oSearchOptions.lShowNoMatchesMessage And Not This.lEscPress - Messagebox('No matches found', 64, 'GoFish') - Endif - - *** JRN 07/10/2016 : ascertain the first match in each statement based on FilePath, Class, MethodName, StatementStart - Update Results ; - Set FirstMatchInStatement = .T. ; - From (This.cSearchResultsAlias) As Results ; - Join (Select FilePath, ; - Class, ; - Name, ; - MethodName, ; - StatementStart, ; - Min(MatchStart) As MatchStart ; - From (This.cSearchResultsAlias) ; - Group By FilePath, Class, Name, MethodName, StatementStart) ; - As FirstMatch ; - On Results.FilePath + Results.Class + Results.Name + Results.MethodName ; - = FirstMatch.FilePath + FirstMatch.Class + FirstMatch.Name + FirstMatch.MethodName ; - And Results.StatementStart = FirstMatch.StatementStart ; - And Results.MatchStart = FirstMatch.MatchStart - - Update Results ; - Set FirstMatchInProcedure = .T. ; - From (This.cSearchResultsAlias) As Results ; - Join (Select FilePath, ; - Class, ; - Name, ; - MethodName, ; - Min(MatchStart) As MatchStart ; - From (This.cSearchResultsAlias) ; - Group By FilePath, Class, Name, MethodName) As FirstMatch ; - On Results.FilePath + Results.Class + Results.Name + Results.MethodName ; - = FirstMatch.FilePath + FirstMatch.Class + FirstMatch.Name + FirstMatch.MethodName ; - And Results.MatchStart = FirstMatch.MatchStart - - Select (m.tnSelect) - - - ENDPROC - - PROCEDURE searchincode && Find text within text-based files like PRG,SPR,MPR, etc. - Lparameters tcCode, tuUserField, tlHasProcedures - - Local loObject as 'GF_SearchResult' - Local lcErrorMessage, llScxVcx, lnMatchCount, lnSelect, loMatch, loMatches, loProcedure - Local loProcedureStartPositions, lcMatchType - - lnSelect = Select() - - If Empty(tcCode) - Return 0 - Endif - *-- Be sure that oRegExForSearch has been setup... Use This.PrepareRegExForSearch() or roll-your-own - Try - loMatches = This.oRegExForSearch.Execute(tcCode) - Catch - EndTry - - If Type('loMatches') = 'O' - lnMatchCount = loMatches.Count - Else - lcErrorMessage = 'Error processing regular expression. ' + This.oRegExForSearch.Pattern - this.SetSearchError(lcErrorMessage) - Return -1 - EndIf - - If lnMatchCount > 0 - - loProcedureStartPositions = Iif(tlHasProcedures, this.GetProcedureStartPositions(tcCode), .null.) - - For Each loMatch In loMatches FOXOBJECT - - If tlHasProcedures and !This.oSearchOptions.lSearchInComments and This.IsComment(loMatch.Value) - Loop - EndIf - loProcedure = this.FindProcedureForMatch(loProcedureStartPositions, loMatch.firstindex) - loObject = Createobject('GF_SearchResult') - - With loObject - .UserField = tuUserField - .oMatch = loMatch - .oProcedure = loProcedure - - .Type = Proper(.oProcedure.Type) - *.ContainingClass = .oProcedure._ClassName && Not used on this object. This line to be deleted after testing. (2012-07-11) - .MethodName = .oProcedure._Name - .ProcStart = .oProcedure.StartByte - .ProcEnd = .oProcedure.EndByte - .ProcCode = Substr(tcCode, .ProcStart + 1, Max(0, .ProcEnd - .ProcStart)) - - .MatchLine = .oMatch.Value - .MatchStart = .oMatch.firstindex - .MatchLen = Len(.oMatch.Value) - - If tlHasProcedures - .MatchType = loProcedure.type && Use what was determined by call to FindProcedureForMatch() - tuUserField.MatchType = loProcedure.type - Else - .MatchType = tuUserField.MatchType && Use what was passed. - Endif - - .Code = Iif(this.oSearchOptions.lStoreCode, tcCode, '') - EndWith - - * Assert Upper(JustExt(Trim(loobject.uSERFIELD.FILENAME))) # 'PRG' - - This.FindStatement(loObject) - - This.ProcessSearchResult(loObject) - - EndFor - - Endif - - Select(lnSelect) - - Return lnMatchCount - ENDPROC - - PROCEDURE searchinfile && Both ProcessProject() and ProcessPath() pass their filenames into this method to have it processed. - Lparameters tcFile, tlForce - - *-- Only searches passed file if its file ext is marked for inclusion (i.e. lIncludeSCX) - *-- Optionally, pass tlForce = .t. to force the file to be searched. - Local lnMatchCount - - *!* ** { JRN -- 11/18/2015 12:16 PM - Begin - *!* If Lastkey() = 27 or Inkey() = 27 - If Inkey() = 27 - *!* ** } JRN -- 11/18/2015 12:16 PM - End - This.lEscPress = .T. - Clear Typeahead - Return 0 - Endif - - *-- See if the filename matches the File template filter (if one is set) ---- - If !Empty(This.oSearchOptions.cFileTemplate) - If !This.MatchTemplate(JustFname(tcFile), JustStem(JustFname(This.oSearchOptions.cFileTemplate))) - This.ReduceProgressBarMaxValue(1) - Return 0 - Endif - Endif - - If This.FilesToSkip(tcFile) - Return 0 - EndIf - - If !This.IsFileTypeIncluded(JustExt(tcFile)) and !tlForce - *This.ReduceProgressBarMaxValue(1) - Return 0 - EndIf - - If !File(tcFile) - this.lFileNotFound = .t. - this.SetSearchError('File not found: ' + tcFile) - *This.ReduceProgressBarMaxValue(1) - Return 0 - EndIf - - This.ShowWaitMessage('Processing file: ' + tcFile) - - *-- Look for a match on the file name ---------------------- - lnFileNameMatchCount = This.SearchInFileName(tcFile) - - If lnFileNameMatchCount < 0 - Return lnFileNameMatchCount - Endif - - llTextFile = This.IsTextFile(tcFile) - - *-- Do not search inside of file if we are only looking at timestamps and have and empty string - If llTextFile and This.oSearchOptions.lTimeStamp and Empty(This.oSearchOptions.cSearchExpression) - This.nFilesProcessed = This.nFilesProcessed + 1 - This.nFileCount = This.nFileCount + 1 - Return lnFileNameMatchCount - Endif - - *-- Look for a match within the file contents ---------------------- - If llTextFile - lnMatchCount = This.SearchInTextFile(tcFile) - Else - lnMatchCount = This.SearchInTable(tcFile) - EndIf - - This.nFilesProcessed = This.nFilesProcessed + 1 - - If lnMatchCount < 0 - Return lnMatchCount - Endif - - *-- Count number of files that had a match by either search above --- - If lnMatchCount > 0 or lnFileNameMatchCount > 0 - this.nFileCount = this.nFileCount + 1 - EndIf - - Return lnMatchCount + lnFileNameMatchCount - - - ENDPROC - - PROCEDURE searchinfilename - Lparameters tcFile - - Local loFileResultObject as 'GF_FileResult' - Local loSearchResultObject as 'GF_SearchResult' - Local lcCode, ldFileDate, lnMatchCount, lnSelect, llHasMethods - - lnSelect = Select() - - If !File(tcFile) - this.lFileNotFound = .t. - this.SetSearchError('File not found: ' + tcFile) - Return 0 - EndIf - - ldFileDate = This.GetFileDateTime(tcFile) - - ldFromDate = Evl(this.oSearchOptions.dTimeStampFrom, {^1900-01-01}) - ldToDate = Evl(this.oSearchOptions.dTimeStampTo, {^9999-01-01}) - ldToDate = ldToDate + 1 &&86400 && Must bump into to next day, since TimeStamp from table has time on it - - If This.oSearchOptions.lTimeStamp and !Between(ldFileDate, ldFromDate, ldToDate) - Return 0 - Endif - - *-- Be sure that oRegExForSearch has been setup... Use This.PrepareRegExForSearch() or roll-your-own - Try - loMatches = This.oRegExForSearch.Execute(JustFname(tcFile)) - Catch - EndTry - - If Type('loMatches') = 'O' - lnMatchCount = loMatches.Count - Else - lcErrorMessage = 'Error processing regular expression. ' + This.oRegExForSearch.Pattern - this.SetSearchError(lcErrorMessage) - Return -1 - EndIf - - If lnMatchCount = 0 and !Empty(This.oSearchOptions.cSearchExpression) - Return 0 - Endif - - loFileResultObject = Createobject('GF_FileResult') && This custom class has all the properties that must be populated if you want to - && have a cursor created - With loFileResultObject - .FileName = Justfname(tcFile) - .FilePath = tcFile - .MatchType = MATCHTYPE_FILENAME - .FileType = Upper(JustExt(tcFile)) - .TimeStamp = ldFileDate - - .matchline = 'File name = "' + .FileName + '"' - .trimmedMatchLine = .matchline - EndWith - - loSearchResultObject = Createobject('GF_SearchResult') - With loSearchResultObject - .UserField = loFileResultObject - .MatchType = MatchType_Filename - .MatchLine = 'File name = "' + loFileResultObject.FileName + '"' - .TrimmedMatchLine = 'File name = "' + loFileResultObject.FileName + '"' - Endwith - - If This.IsTextFile(tcFile) - loSearchResultObject.Code = FileToStr(tcFile) - Endif - - This.ProcessSearchResult(loSearchResultObject) - - Select (lnSelect) - - Return 1 - - - ENDPROC - - PROCEDURE searchinpath - Lparameters tcPath - - Local lcDirectory, lcFile, lcFileFilter, lcFilename, lnFileCount, lnReturn, lnSelect, j - - lnSelect = Select() - - If Empty(tcPath) - This.SetSearchError('Path parameter [' + tcPath + '] is empty in call to SearchInPath()') - Return 0 - Endif - - This.oSearchOptions.cPath = tcPath - - This.StoreInitialDefaultDir() - - If !This.ChangeCurrentDir(tcPath) && If there was a problem CD-ing into the starting path - This.RestoreDefaultDir() - Return -1 - EndIf - - This.PrepareForSearch() - This.StartTimer() - - lnReturn = 1 && Assume success, testing below will set negative if there are errors - - This.ShowWaitMessage('Scanning directory...') - - If Vartype(This.oProgressBar) = 'O' - This.oProgressBar.nMaxValue = 0 - EndIf - - This.StartProgressBar(0) - - This.oDirectories = This.GetDirectories(tcPath, This.oSearchOptions.lIncludeSubdirectories) - - If This.lEscPress = .t. - This.SearchFinished(lnSelect) - Return 0 - Endif - - ChDir (tcPath) && Must go back, since above call to BuildDirList prolly changed our directory! - - This.StartProgressBar(This.oProgressBar.nMaxValue) - lnTotalFileCount = 0 - - For Each lcDirectory in This.oDirectories - - If This.FilesToSkip(Upper(lcDirectory + '\-')) - Loop - EndIf - - - lcFileFilter = Addbs(lcDirectory) + '*.*' - - If Adir(laTemp, lcFileFilter) = 0 && 0 means no files in the Dir - Loop - Endif - - Asort(laTemp) - - lnFileCount = Alen(laTemp) / 5 && The number of files that match the filter criteria for this pass - - For j = 1 To lnFileCount - lcFilename = laTemp(j, 1) && Just the name and ext, no path info - lcFile = Addbs(lcDirectory) + lcFilename && path + filename - lnReturn = This.SearchInFile(lcFile) - - lnTotalFileCount = lnTotalFileCount + 1 - This.UpdateProgressBar(lnTotalFileCount) - - If lnReturn < 0 or This.lEscPress = .t. or This.nMatchLines >= this.oSearchOptions.nMaxResults - Exit - EndIf - EndFor - - If lnReturn < 0 or This.lEscPress = .t. or This.nMatchLines >= this.oSearchOptions.nMaxResults - Exit - EndIf - EndFor - - This.SearchFinished(lnSelect) - - This.RestoreDefaultDir() - - If lnReturn >= 0 - Return 1 - Else - Return lnReturn - Endif - - - - ENDPROC - - PROCEDURE searchinproject - Lparameters tcProject - - Local laProjectFiles[1], lcFile, lcProjectAlias, lcProjectPath, lnReturn, lnSelect, n - - lnSelect = Select() - - lcProjectPath = Addbs(JustPath(Alltrim(tcProject))) - lcProjectAlias = 'GF_ProjectSearch' - - This.oSearchOptions.cProject = tcProject - - If Empty(tcProject) - This.SetSearchError('Project parameter [' + tcProject + '] is empty in call to SearchInProject().') - Return 0 - EndIf - - If !File(tcProject) - This.SetSearchError('Project file [' + tcProject + '] not found in call to SearchInProject().') - Return 0 - EndIf - - Try && Attempt to open Project.PJX in a cursor... - Select 0 - Use (tcProject) Again Shared Alias &lcProjectAlias - lnReturn = 1 - Catch - lnReturn = -2 - Endtry - - If lnReturn = -2 - This.SetSearchError('Cannot open project file[' + tcProject + ']') - This.SearchFinished(lnSelect) - Return lnReturn - Endif - - Select Name, Type ; - From (lcProjectAlias) ; - Where Type $ 'EHKMPRVBdTxD' And ; - Not Deleted() ; - And !(Upper(JustExt(name)) $ This.cGraphicsExtensions) ; - Order By type ; - Into Array laProjectFiles - - If Type('laProjectFiles') = 'L' - This.SearchFinished(lnSelect) - Return 1 - EndIf - - Use In Alias (lcProjectAlias) - - This.PrepareForSearch() - This.StartTimer() - This.StartProgressBar(Alen(laProjectFiles) / 2.0) - - For n = 1 To Alen(laProjectFiles) Step 2 - - lcFile = laProjectFiles(n) - lcFile = FullPath(lcFile, lcProjectPath) - lcFile = Strtran(lcFile, Chr(0), '') && Stip out junk char from the end - - If This.oSearchOptions.lLimitToProjectFolder - If !(Upper(lcProjectPath) $ Upper(Addbs(JustPath(lcFile)))) - Loop - Endif - Endif - - lnReturn = this.SearchInFile(lcFile) - - This.UpdateProgressBar(This.nFilesProcessed) - - If (lnReturn < 0) or this.lEscPress = .t. or This.nMatchLines >= This.oSearchOptions.nMaxResults - Exit - EndIf - - EndFor - - This.SearchFinished(lnSelect) - - If lnReturn >= 0 - Return 1 - Else - Return lnReturn - Endif - - - - ENDPROC - - PROCEDURE searchintable && Performs a search on a table-based file like a VCX, SCX, FRX, etc. - Lparameters tcFile &&, tcSearchExpression &&, zcltype, zfilename - - Local loFileResultObject As 'GF_FileResult' - Local loSearchResultObject As 'GF_SearchResult' - Local laMaxTimeStamp[1], laParent[1], lcClass, lcCode, lcDataType, lcDeleted, lcExt, lcField - Local lcFieldSource, lcFormClass, lcFormClassloc, lcFormName, lcName, lcObjectType, lcParent - Local lcParentName, lcProject, lcSearchExpression, ldFromDate, ldMaxTimeStamp, ldToDate - Local llContinueError, llHasMethods, llLocateError, llProcessThisMatch, llScxVcx, lnEndColumn - Local lnMatchCount, lnParentId, lnSelect, lnStart, lnStartColumn, lnTotalMatches, loException - Local ii, llIgnorePropertiesField - - lnSelect = Select() - - lnMatchCount = 0 - lnTotalMatches = 0 - lcExt = Upper(Justext(m.tcFile)) - lcProject = This.oSearchOptions.cProject - - lcSearchExpression = Upper(Alltrim(This.oSearchOptions.cSearchExpression)) - - Try - Use (m.tcFile) Again Shared Alias 'GF_TableSearch' In Select('GF_TableSearch') - Catch To m.loException - - Endtry - - If Not Used('GF_TableSearch') - This.SetSearchError('Cannot open file: ' + Alltrim(m.tcFile) + CR + Space(5) + m.loException.Message, 16, 'File Error') - Return 0 - Else - Select('GF_TableSearch') - - If m.lcExt = 'SCX' - If Empty(Field('BaseClass')) - lcFormName = '' - lcFormClass = '' - lcFormClassloc = '' - else - Locate For BaseClass = 'form' - lcFormName = ObjName - lcFormClass = Class - lcFormClassloc = CLASSLoc - EndIf - Endif - - Endif - - If This.oSearchOptions.lTimeStamp And Type('timestamp') = 'U' - Use In 'GF_TableSearch' - Return 0 - Endif - - This.ShowWaitMessage('Searching File: ' + m.tcFile) - - lnEndColumn = 255 - llIgnorePropertiesField = .F. - - Do Case - Case 'VCX' $ m.lcExt - lnStartColumn = 4 - llIgnorePropertiesField = This.oSearchOptions.lIgnorePropertiesField - Case 'SCX' $ m.lcExt - lnStartColumn = 4 - llIgnorePropertiesField = This.oSearchOptions.lIgnorePropertiesField - *lnEndColumn = 12 - Case 'FRX' = m.lcExt - lnStartColumn = 3 && Newer reports could start at col 6, but older reports can have text data starting in column 3 - *lnEndColumn = 21 - If Len(Field('timestamp', 'GF_TableSearch')) > 0 && Some really old reports may not have this field. - Select Max(Timestamp) From 'GF_TableSearch' Into Array laMaxTimeStamp - Else - laMaxTimeStamp = {} - Endif - ldMaxTimeStamp = Ctot(This.TimeStampToDate(m.laMaxTimeStamp)) - Case 'DBC' = m.lcExt - lnStartColumn = 3 - *lnEndColumn = 6 - Case 'MNX' = m.lcExt - lnStartColumn = 1 - Otherwise - lnStartColumn = 1 - Endcase - - - lcDeleted = Set('Deleted') - Set Deleted On - - *-- Scan across all table columns looking for matches on each row - *-- See: http://fox.wikis.com/wc.dll?Wiki~VFPVcxStructure for details about scx/vcx columns - *-- See: http://mattslay.com/foxpro-report-frx-table-structure for details about FRX structure - - For ii = m.lnStartColumn To m.lnEndColumn Step 1 - Goto Top - lcField = Upper(Field(m.ii)) - llLocateError = .F. - - If Empty(m.lcField) - Exit - Endif - - If Not Type(m.lcField) $ 'CM' Or ; && If not a character or Memo field - ('TAG' $ m.lcField And m.lcExt # 'FRX') Or ; - Inlist(m.lcField, 'OBJCODE', 'OBJECT', 'SYMBOLS') - Loop - EndIf - - If llIgnorePropertiesField and lcField == 'RESERVED3' - Loop - EndIf - - If m.lcExt = 'DBC' - lcObjectType = Alltrim(Upper(objecttype)) - If Type('objectname') = 'U'&& or; - *'OBJECT' $ Upper(objectname) or ; - InList(lcObjectType, 'FIELD', 'VIEW', 'TABLE') - Loop - Endif - Endif - - *-- This is an important speed part of GoFish... If the user is not using a regular expression, then we - *-- can use the Locate command to make a quick look for a match anywhere in this column. We will handle the - *-- whole word part later on in the code, but a quick partial match hit helps us skips rows that have not - *-- match at all. - *-- If we find a match, we process it futher and then call Continue to look for the next partial and repeat. - *-- This logic is not used if we are doing a Reg Ex search. - If Not This.oSearchOptions.lRegularExpression - If This.oSearchOptions.lTimeStamp - ldFromDate = Evl(This.oSearchOptions.dTimeStampFrom, {^1900-01-01}) - ldToDate = Evl(This.oSearchOptions.dTimeStampTo, {^9999-01-01}) - ldToDate = m.ldToDate + 1 &&86400 && Must bump into to next day, since TimeStamp from table has time on it - - Locate For Between(Ctot(This.TimeStampToDate(Timestamp)), m.ldFromDate, m.ldToDate) Nooptimize - - If Not Found() && If doing a TimeStmp search and we did not find a match, we can skip out of this file - Exit - Endif - Else - Try - If This.oSearchOptions.nSearchMode = GF_SEARCH_MODE_LIKE - Locate For Likec('*' + Upper(m.lcSearchExpression) + '*', Upper(Evaluate(m.lcField))) Nooptimize - Else - Locate For Upper(m.lcSearchExpression) $ Upper(Evaluate(m.lcField)) Nooptimize - Endif - Catch - This.SetSearchError('Error scanning through table [' + m.tcFile + ']. File may be corrupt.') - llLocateError = .T. - Finally - Endtry - Endif - - If Not Found() Or m.llLocateError = .T. - Loop && Loop to next column - Endif - - Endif - - Do While Not Eof() - - lnMatchCount = 0 - loFileResultObject = Createobject('GF_FileResult') && This custom class has all the properties that must be populated if you want to - llProcessThisMatch = .T. && have a cursor created - llScxVcx = Inlist(m.lcExt, 'VCX', 'SCX') - lcCode = Evaluate(m.lcField) - - With m.loFileResultObject - .Process = .F. - .FileName = Justfname(m.tcFile) - .FilePath = m.tcFile - .MatchType = Proper(m.lcField) - .FileType = Upper(m.lcExt) - .Column = m.lcField - .IsText = .F. - .Recno = Recno() - .Timestamp = Iif(Type('timestamp') # 'U', Ctot(This.TimeStampToDate(Timestamp)), {// :: AM}) - - lcClass = Iif(Type('class') # 'U', Class, '') - .ContainingClass = m.lcClass - ._ParentClass = m.lcClass - ._BaseClass = Iif(Type('baseclass') # 'U', BaseClass, '') - .CLASSLoc = Iif(Type('classloc') # 'U', CLASSLoc, '') - - lcParent = Iif(Type('parent') # 'U', Parent, '') - lcName = Iif(Type('objname') # 'U', ObjName, '') - ._Name = Alltrim(m.lcParent + '.' + m.lcName, '.') - - Do Case - Case m.lcExt = 'SCX' - - ._Class = '' - - If Not Empty(m.lcParent) - ._Name = Strtran(._Name, m.lcFormName + '.', '', 1, 1) && Trim off Form name from the beginning of object name - Else - ._Name = '' - Endif - - Case m.lcExt = 'VCX' - - If Not Empty(m.lcParent) - ._Class = Getwordnum(m.lcParent, 1, '.') - Else - ._Class = Alltrim(ObjName) - ._Name = '' - Endif - - Case m.lcExt = 'FRX' - ._Name = Name - ._Class = This.GetFrxObjectType(objtype, objCode) - If Empty(.Timestamp) - .Timestamp = m.ldMaxTimeStamp - Endif - - Case m.lcExt = 'DBF' - .MatchType = '' - ._Name = Proper(m.lcField) - - Case m.lcExt = 'DBC' - ._Name = Alltrim(ObjectName) - ._Class = Alltrim(objecttype) - - Do Case - - Case ._Class = 'Database' And m.lcField = 'OBJECTNAME' - *lcCode = '' && Will cause this match to be skipped. Don't want to record these matches. - - Case ._Class = 'Table' - *lcCode = ._Class + '.dbf' && The name of the Table attached to the DBC - lcCode = This.CleanUpBinaryString(m.lcCode) && The SQL statement that makes up the View - - Case ._Class = 'View' - lnStart = Atc('Select', m.lcCode) - lcCode = Substr(m.lcCode, m.lnStart) - lcCode = This.CleanUpBinaryString(m.lcCode, .T.) && The SQL statement that makes up the View - - Case ._Class = 'Field' && Fields can be part of Tables or Views - *-- Get some info about the parent of this field - lnParentId = ParentID - Select objecttype, ObjectName From (m.tcFile) Where objectid = m.lnParentId Into Array laParent - lcParentName = Alltrim(m.laParent[2]) - - *-- Parse the field into a field name and field source - lnStart = Atc('#', m.lcCode) - lcCode = Substr(m.lcCode, m.lnStart + 1) - lcCode = This.CleanUpBinaryString(m.lcCode) - - lcFieldSource = Alltrim(Getwordnum(m.lcCode, 1)) - lcDataType = Substr(Alltrim(Getwordnum(m.lcCode, 2)), 2) - - If m.lcFieldSource = '0' - lcFieldSource = '[Table alias in query]' - lcDataType = '' - Endif - - If Not Empty(m.lcDataType) - lcCode = m.lcParentName + ' references ' + m.lcFieldSource + ' (data type: ' + m.lcDataType + ')' - .MatchType = 'Field Source' - Else - lcCode = m.lcParentName + '.' + m.lcFieldSource - .MatchType = Alltrim(m.laParent[1]) + ' Field' - Endif - - ._Class = .MatchType - - Endcase - Endcase - *EndIf - - *If Alltrim(Upper(._ParentClass)) = Alltrim(Upper(._Baseclass)) - * ._ParentClass = '' - *EndIf - - *-- Here is where we can skip the processing of certain record that we want to ignore, even though we found a match in them... - If (Empty(m.lcClass) And m.lcExt = 'VCX') Or ; && This is the ending row of a Class def in a vcx. Need to skip over it. - (m.lcField = 'TAG2' And m.lcExt = 'FRX' And Recno() = 1) && Tag2 on first record in a FRX is binary and I want to skip it - llProcessThisMatch = .F. - Endif - - Endwith - - If This.oSearchOptions.lTimeStamp And Not Between(Ctot(This.TimeStampToDate(Timestamp)), m.ldFromDate, m.ldToDate) - llProcessThisMatch = .F. - Endif - - If m.llProcessThisMatch = .T. - If Not Empty(This.oSearchOptions.cSearchExpression) - *lcCode = Evaluate(lcField) - llHasMethods = Upper(m.lcField) = 'METHODS' Or ; - m.lcExt = 'FRX' And Upper(m.lcField) = 'TAG' And Upper(Name) = 'DATAENVIRONMENT' - lnMatchCount = This.SearchInCode(m.lcCode, m.loFileResultObject, m.llHasMethods) - Else - * Can't search since there is no cSearchExpression, so we just log the file as a result. - * This handles TimeStamp searches, where the cSearchExpression is empty - loSearchResultObject = Createobject('GF_SearchResult') - loSearchResultObject.Code = Iif(Type('properties') # 'U', Properties, '') - loSearchResultObject.Code = m.loSearchResultObject.Code + CR + Iif(Type('methods') # 'U', Methods, '') - loSearchResultObject.UserField = m.loFileResultObject - - If m.lcExt = 'FRX' - loSearchResultObject.MatchLine = Expr - loSearchResultObject.TrimmedMatchLine = Expr - Endif - - This.ProcessSearchResult(m.loSearchResultObject) - - ii = 1000 && To end the outer for loop when the Do loop ends - lnMatchCount = m.lnMatchCount + 1 - Endif - Endif - - If m.lnMatchCount < 0 && There was an error in above call, need to exit - Exit - Else - lnTotalMatches = m.lnTotalMatches + m.lnMatchCount - Endif - - - If Not This.oSearchOptions.lRegularExpression - Try - Continue - Catch - This.SetSearchError('Error scanning through table [' + m.tcFile + ']. File may be corrupt.') - llContinueError = .T. - Finally - Endtry - - If m.llContinueError = .T. - Exit - Endif - - - Else - Skip 1 - Endif - - Enddo - - If m.lnMatchCount < 0 && There was an error in above call - Exit - Endif - - Endfor - - Set Deleted &lcDeleted - - Use In 'GF_TableSearch' - - Select (m.lnSelect) - - If m.lnMatchCount < 0 - Return m.lnMatchCount - Else - Return m.lnTotalMatches - Endif - - ENDPROC - - PROCEDURE searchintextfile - Lparameters tcFile - - Local loFileResultObject as 'GF_FileResult' - Local loSearchResultObject as 'GF_SearchResult' - Local lcCode, ldFileDate, lnMatchCount, lnSelect, llHasMethods - - lnSelect = Select() - - If !File(tcFile) - this.lFileNotFound = .t. - this.SetSearchError('File not found: ' + tcFile) - Return 0 - EndIf - - ldFileDate = This.GetFileDateTime(tcFile) - - ldFromDate = Evl(this.oSearchOptions.dTimeStampFrom, {^1900-01-01}) - ldToDate = Evl(this.oSearchOptions.dTimeStampTo, {^9999-01-01}) - ldToDate = ldToDate + 1&&86400 && Must bump into to next day, since TimeStamp from table has time on it - - If This.oSearchOptions.lTimeStamp and !Between(ldFileDate, ldFromDate, ldToDate) - Return 0 - EndIf - - loFileResultObject = Createobject('GF_FileResult') && This custom class has all the properties that must be populated if you want to - && have a cursor created - With loFileResultObject - .FileName = Justfname(tcFile) - .FilePath = tcFile - .MatchType = Proper(JustExt(tcFile)) - .FileType = Upper(JustExt(tcFile)) - .IsText = .t. - .TimeStamp = ldFileDate - EndWith - - If !Empty(this.oSearchOptions.cSearchExpression) - Try - lcCode = FileToStr(tcFile) && File could be in use by some other app and can't be read in - llReadFile = .t. - Catch - This.SetSearchError('Could not open file [' + tcFile + '] for reading.') - llReadFile = .f. - Endtry - If !llReadFile - Select (lnSelect) - Return 0 - Endif - - llHasMethods = InList(Upper(loFileResultObject.MatchType) + ' ', 'PRG ', 'MPR ', 'H ') - lnMatchCount = This.SearchInCode(lcCode, loFileResultObject, llHasMethods) - Else - * Can't search since there is no cSearchExpression, so we just log the file as a result. - * This handles TimeStamp searches, where the cSearchExpression is empty - loSearchResultObject = Createobject('GF_SearchResult') - loSearchResultObject.UserField = loFileResultObject - - This.ProcessSearchResult(loSearchResultObject) - lnMatchCount = 1 - EndIf - - Select (lnSelect) - - Return lnMatchCount - - - ENDPROC - - PROCEDURE setfilestoskip - *-- Read a user file set the the cFilesToSkip property - #Define CR Chr(13) - - Local lcExclusionFile, lcFilesToSkip, lcLeft, lcLine, lcRight, lnI - - lcFilesToSkip = '' - lcExclusionFile = This.cFilesToSkipFile - - If File(m.lcExclusionFile) And This.oSearchOptions.lSkipFiles - lcFilesToSkip = Filetostr(m.lcExclusionFile) - Endif - - This.cFilesToSkip = CR - This.nWildCardFilesToSkip = 0 - - For lnI = 1 To Alines(laLines, m.lcFilesToSkip + Chr(13) + '_command.prg', 5) - lcLine = Upper(laLines[m.lni]) - lcLeft = Left(m.lcLine, 1) - lcRight = Right(m.lcLine, 1) - - Do Case - Case Left(m.lcLine, 2) = '**' - - Case m.lcLeft = '\' And m.lcRight = '\' - This.nWildCardFilesToSkip = This.nWildCardFilesToSkip + 1 - Dimension This.aWildCardFiles[This.nWildCardFilesToSkip] - This.aWildCardFiles[This.nWildCardFilesToSkip] = '*' + m.lcLine + '*' - - Case '\' $ m.lcLine - This.nWildCardFilesToSkip = This.nWildCardFilesToSkip + 1 - Dimension This.aWildCardFiles[This.nWildCardFilesToSkip] - This.aWildCardFiles[This.nWildCardFilesToSkip] = Icase(m.lcLeft = '*', '', m.lcLeft = '\', '*', '*\') + m.lcLine - - Case '*' $ m.lcLine Or '?' $ m.lcLine - This.nWildCardFilesToSkip = This.nWildCardFilesToSkip + 1 - Dimension This.aWildCardFiles[This.nWildCardFilesToSkip] - This.aWildCardFiles[This.nWildCardFilesToSkip] = '*\' + m.lcLine - - Otherwise - This.cFilesToSkip = This.cFilesToSkip + m.lcLine + CR - Endcase - Endfor - - - - - ENDPROC - - PROCEDURE setproject - Lparameters tcProject - - Local lcProject, llReturn - - lcProject = Lower(Evl(tcProject, '')) - - If Empty(lcProject) - Return .t. - Endif - - If !('.pjx' $ lcProject) - lcProject = lcProject+ '.pjx' - EndIf - - If File(lcProject) - This.AddProject(lcProject) - This.oSearchOptions.cProject = lcProject - llReturn = .t. - Else - This.oSearchOptions.cProject = '' - This.SetSearchError('Project not found [' + lcProject + '] in call to SetProject() method.') - llReturn = .f. - EndIf - - Return llReturn - - - ENDPROC - - PROCEDURE setreplaceerror - Lparameters tcErrorMessage, tcFile, tnResultId, tnDialogBoxType, tcTitle - - Local lcErrorMessage, lcFile, lnResultId - - lcFile = Alltrim(Evl(tcFile, 'None')) - lnResultId = Evl(tnResultId, 0) - - lcResultId = Iif(lnResultId = 0, 'None', Alltrim(Str(lnResultId))) - - lcErrorMessage = tcErrorMessage + Space(4) + ; - '[File: ' + lcFile + ']' + Space(4) +; - '[Result Id: ' + lcResultId + ']' - - this.ShowError(lcErrorMessage, tnDialogBoxType, tcTitle) - - This.oReplaceErrors.Add(lcErrorMessage) - ENDPROC - - PROCEDURE setsearcherror - Lparameters tcErrorMessage, tnDialogBoxType, tcTitle - - * this.ShowError(tcErrorMessage, tnDialogBoxType, tcTitle) - - This.oSearchErrors.Add(tcErrorMessage) - ENDPROC - - PROCEDURE showerror - Lparameters tcErrorMessage, tnDialogBoxType, tcTitle - - Local lcTitle, lnDialogBoxType - - If Empty(tcErrorMessage) or !This.oSearchOptions.lShowErrorMessages - Return - EndIf - - lnDialogBoxType = Evl(tnDialogBoxType, 0) - lcTitle = Evl(tcTitle, 'GoFishSearchEngine Error:') - - *!* ******************** Removed 11/10/2015 ***************** - *!* MessageBox(tcErrorMessage, lnDialogBoxType, lcTitle) - - ENDPROC - - PROCEDURE showwaitmessage - Lparameters tcMessage - - If This.oSearchOptions.lShowWaitMessages - Wait Window At 5, Wcols() / 2 Nowait tcMessage - EndIf - - ENDPROC - - PROCEDURE startprogressbar - Lparameters tnMaxValue - - If Vartype(This.oProgressBar) = 'O' - This.oProgressBar.Start(tnMaxValue) - Endif - - ENDPROC - - PROCEDURE starttimer - This.nSearchTime = Seconds() - ENDPROC - - PROCEDURE stopprogressbar - If Vartype(This.oProgressBar) = 'O' - This.oProgressBar.Stop() - Endif - - ENDPROC - - PROCEDURE storeinitialdefaultdir - This.cInitialDefaultDir = Sys(5) + Sys(2003) - ENDPROC - - PROCEDURE thormovewindow - If Type('_Screen.cThorDispatcher') = 'C' - Execscript (_Screen.cThorDispatcher, 'PEMEditor_StartIDETools') - _oPEMEditor.Outils.oIDEx.MoveWindow() - Endif - - ENDPROC - - PROCEDURE timestamptodate && Handles the conversion of the FoxPro TIMESTAMP field to a readable (and understandable) date and time. By Rick Schummer. - * METHOD: TimeStamp2Date() - * - * AUTHOR: Richard A. Schummer September 1994 - * - * COPYRIGHT (c) 1994-2001 Richard A. Schummer - * 42759 Flis Dr - * Sterling Heights, MI 48314-2850 - * RSchummer@CompuServe.com - * - * METHOD DESCRIPTION: - * This procedure handles the conversion of the FoxPro TIMESTAMP field to - * a readable (and understandable) date and time. The procedure will return - * the date/time in three formats based on the cStyle parameter. Timestamp - * field is a 32-bit (numeric compressed) system that the FoxPro development - * team created to save on file space in the projects, screens, reports, and - * label databases. This field is used to determine if objects need to be - * recompiled (project manager), or syncronized across platforms (screens, - * reports, and labels). - * - * CALLING SYNTAX: - * = ctrMetaDecode.TimeStamp2Date(,) - * - * Sample: - * ltDateTime = ctrMetaDecode.TimeStamp2Date(TimeStamp,"DATETIME") - * - * INPUT PARAMETERS: - * nTimeStamp = Required field, must be numeric, no check to verify the - * data passed is valid FoxPro Timestamp, just be sure it is - * cStyle = Not required (defaults to "DATETIME"), must be character, - * and must be one of the following: - * "DATETIME" will return the date/time in MM/DD/YY HH:MM:SS - * "DATE" will return the date in MM/DD/YY format - * "TIME" will return the time in HH:MM:SS format - * - * OUTPUT PARAMETERS: - * lcRetval = The date/time (in requested format) is returned in - * character type. Must be converted and parsed to be - * used as date type. - * - - - *============================================================= - * Tried to use this FFC class, but it sometimes gave an error: - * This.oFrxCursor.GetTimeStampString(timestamp) - *============================================================= - - - Lparameter tnTimeStamp, tcStyle - - Local lcRetVal && Requested data returned from procedure, ; - lnYear, ; - lnMonth, ; - lnDay, ; - lnHour, ; - lnMinute, ; - lnSecond, ; - loException - - If Type('tnTimeStamp') != "N" && Timestamp must be numeric - *Wait Window "Time stamp passed is not numeric" NoWait - Return "" - Endif - - If tnTimeStamp = 0 && Timestamp is zero until built in project - Return "Not built into App" - Endif - - If Type('tcStyle') != "C" && Default return style to both date and time - tcStyle = "DATETIME" - Endif - - If !Inlist(Upper(tcStyle), "DATE", "TIME", "DATETIME") - Wait Window "Style parameter must be DATE, TIME, or DATETIME" - Return "" - Endif - - lnYear = ((tnTimeStamp / (2 ** 25) + 1980)) - lnMonth = ((lnYear - Int(lnYear) ) * (2 ** 25)) / (2 ** 21) - lnDay = ((lnMonth - Int(lnMonth) ) * (2 ** 21)) / (2 ** 16) - - lnHour = ((lnDay - Int(lnDay) ) * (2 ** 16)) / (2 ** 11) - lnMinute = ((lnHour - Int(lnHour) ) * (2 ** 11)) / (2 ** 05) - lnSecond = ((lnMinute - Int(lnMinute)) * (2 ** 05)) * 2 && Multiply by two to correct - && truncation problem built in - && to the creation algorithm - && (Source: Microsoft Tech Support) - - lcRetVal = "" - - If "DATE" $ Upper(tcStyle) - *< 4-Feb-2001 Fixed to display date in machine designated format (Regional Settings) - *< lcRetVal = lcRetVal + RIGHT("0"+ALLTRIM(STR(INT(lnMonth))),2) + "/" + ; - *< RIGHT("0"+ALLTRIM(STR(INT(lnDay))),2) + "/" + ; - *< RIGHT("0"+ALLTRIM(STR(INT(lnYear))), IIF(SET("CENTURY") = "ON", 4, 2)) - - *< RAS 23-Nov-2004, change to work around behavior change in VFP 9. - *< lcRetVal = lcRetVal + DTOC(DATE(lnYear, lnMonth, lnDay)) - Try - lcRetVal = lcRetVal + Dtoc(Date(Int(lnYear), Int(lnMonth), Int(lnDay))) - Catch to loException - lcRetVal = lcRetVal + Dtoc(Date(1901,1,1)) - EndTry - Endif - - If "TIME" $ Upper(tcStyle) - lcRetVal = lcRetVal + Iif("DATE" $ Upper(tcStyle), " ", "") - lcRetVal = lcRetVal + Right("0" + Alltrim(Str(Int(lnHour))), 2) + ":" + ; - Right("0" + Alltrim(Str(Int(lnMinute))), 2) + ":" + ; - Right("0" + Alltrim(Str(Int(lnSecond))), 2) - Endif - - Return lcRetVal - - - ENDPROC - - PROCEDURE trimwhitespace - Lparameters tcString - - Local lcTrimmedString - - lcTrimmedString = Alltrim(tcString, 1, Chr(32), Chr(9), Chr(10), Chr(13), Chr(0)) - lcTrimmedString = Strtran(lcTrimmedString , Chr(9), Chr(32)) - - Return lcTrimmedString - ENDPROC - - PROCEDURE updatecursorafterreplace && Updates the match position fields on remaining rows in the results cursor after a replace opertion is performed on a row. - Lparameters tcCursor, toResult - - Local lcColumn, lcFileToModify, lnChangeLength, lnCurrentRecno, lnMatchStart, lnProcStart - Local lnResultRecno, lnSelect - - If This.oSearchOptions.lPreviewReplace = .t. - Return - Endif - - lnChangeLength = toResult.nChangeLength - - lnSelect = Select() - Select (tcCursor) - lnCurrentRecno = Recno() - - *-- Create local vars of certain fields from the current row that we need to use below - lcFileToModify = Alltrim(filepath) - lnResultRecno = recno - lnProcStart = procstart - lnMatchStart = matchstart - lcColumn = Column - - *-- Cannot process same source code line more than once, so mark this and all other rows of - *-- the same oringal source line with replacd = .t., and also update the matchlen - Update &tcCursor ; - Set replaced = .t., ; - matchlen = Max(matchlen + lnChangeLength, 0) ; - Where Alltrim(filepath) == lcFileToModify And ; - recno = lnResultRecno And ; - column = lcColumn And ; - matchstart = lnMatchStart - - *-- Update the stored code with the new code for all records of the same original source - Update &tcCursor ; - Set code = toResult.cNewCode; - Where Alltrim(filepath) == lcFileToModify And ; - recno = lnResultRecno And ; - column = lcColumn - - *-- Update matchstart values on remaining records of same file, recno, and column type - Update &tcCursor ; - Set matchstart = (matchstart + lnChangeLength) ; - Where Alltrim(filepath) == lcFileToModify And ; - recno = lnResultRecno And ; - column = lcColumn And ; - matchstart > lnMatchStart - - *-- Update procstart values on remaining records of same file, recno, and column type - Update &tcCursor ; - Set procstart = (procstart + lnChangeLength) ; - Where Alltrim(filepath) == lcFileToModify And ; - recno = lnResultRecno And ; - column = lcColumn And ; - procstart > lnProcStart - - Goto (lnCurrentRecno) - - Select (lnSelect) - ENDPROC - - PROCEDURE updateprogressbar - Lparameters tnValue - - If Vartype(This.oProgressBar) = 'O' - This.oProgressBar.nValue = tnValue - Endif - - ENDPROC - - PROCEDURE updatereplacehistoryrecord - *-- If we are in Replace Preview mode, do not attempt to update the Replace Detail record. - - If This.oSearchOptions.lPreviewReplace = .f. - Update (This.cReplaceHistoryTable) Set replaces = This.nReplaceCount Where id = this.nReplaceHistoryId - Endif - ENDPROC - -ENDDEFINE - -DEFINE CLASS gofishsearchoptions AS custom - *< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" /> - - #INCLUDE "gofish.h" - * - *m: lregularexpression_access - *p: cescapedsearchexpression && This is the escaped version of the cSearchExpression that is used for the actual Reg Ex search. The class maintains this, so the class user should never touch this. - *p: cfiletemplate && A file mask template, like Job*, or *Job, or *job*, or Job*.scx, or *.scx, etc. - *p: cindexstring - *p: cotherincludes && An additional list of file extensions to be included in the search. Just separate each extension by a space. No dot is needed. Case does not matter. - *p: cpath && This property can be used to store the name of a Path on the object. - *p: cproject && This property can be used to store the name of a Project on the object. - *p: crecentscope - *p: creplaceexpression - *p: csearchexpression && Search expression to be sought. Can be a regex. Set lRegularExpression to .t. if it is. - *p: dtimestampfrom - *p: dtimestampto - *p: lallowblankreplace && This flag must be set in order to do a replace operation where the replacement string is a blank string. - *p: lbackup - *p: lcolorizevfpcode - *p: lcreateresultscollection && Indicates if you want to store each match result object into the oResults colleciton on the Search Engine class. - *p: lcreateresultscursor && Inidcates if you want to store each search result in a local cursor. See cSearchResultsAlias propertyy on the Search Class for the namee of the Cursor. - *p: ldonotshowreplacewarning && This will supress the warning dialog that pops up every time you perform a replace. - *p: lenablereplacemode - *p: lignorememberdata - *p: lignorepropertiesfield - *p: lincludeallfiletypes && Not used. - *p: lincludeasp - *p: lincludedbc - *p: lincludefrx - *p: lincludeh - *p: lincludehtml - *p: lincludeini - *p: lincludejava - *p: lincludejsp - *p: lincludelbx - *p: lincludemnx - *p: lincludempr - *p: lincludepjx - *p: lincludeprg - *p: lincludescx - *p: lincludespr - *p: lincludesubdirectories - *p: lincludetxt - *p: lincludevcx - *p: lincludexml - *p: llimittoprojectfolder && When searching a PJX file, this flag will skip over searches on any files in the project which are not located in or below the Project's home path. - *p: lmatchcase - *p: lmatchwholeword - *p: lpreviewreplace - *p: lregularexpression && Indicates if the cSearchExpression is intended to be used as a Regular Expression. - *p: lsearchincomments - *p: lshowadvancedformonstartup - *p: lshowerrormessages && Determines if a messagebox will pop up any time there is an error on the Search or Replace family of methods. - *p: lshownomatchesmessage && Display a MessageBox at the end of a search if there were no matches found. - *p: lshowwaitmessages && Will display the name of each file in a wait window as they are being processed. Caution: using this feature slows down the search a good bit. - *p: lskipfiles && A flag to indicate if the user wants to process the files in cFilesToSkipFile files to skip over certain files during the search. - *p: lstorecode && Indicates if you want a copy of the code block stored on each search reesult record (for ResultsCursor) or collection node (for ResultsCollection). - *p: ltimestamp && Indicates if the search will be limited to filedates and object TimeStamps that fall on or between the dTimeStampForm and dTimeStampTo values. - *p: lwarnwhenunabletoopenfilesduringsearch - *p: nhtmlmatchlinecolor - *p: nmaxresults && Limits the amx number of results created. Search will stop at this limit. Collection restutls over 50,000 with lStoreCode = .t. could lead to memory problems. - *p: nsearchmode && Indicates which search mode to use: Plain, LIKE, or RegEx. See GoFish.h constants file for values. - *p: nsearchscope && 1 = Active Project, 2=Browse Project, 3 = Current Dir, 4= Browse Directory - *p: _memberdata && XML Metadata for customizable properties - * - - cescapedsearchexpression = && This is the escaped version of the cSearchExpression that is used for the actual Reg Ex search. The class maintains this, so the class user should never touch this. - cfiletemplate = && A file mask template, like Job*, or *Job, or *job*, or Job*.scx, or *.scx, etc. - cindexstring = - cotherincludes = && An additional list of file extensions to be included in the search. Just separate each extension by a space. No dot is needed. Case does not matter. - cpath = && This property can be used to store the name of a Path on the object. - cproject = && This property can be used to store the name of a Project on the object. - crecentscope = - creplaceexpression = - csearchexpression = && Search expression to be sought. Can be a regex. Set lRegularExpression to .t. if it is. - dtimestampfrom = {} - dtimestampto = {} - Height = 18 - lallowblankreplace = .F. && This flag must be set in order to do a replace operation where the replacement string is a blank string. - lbackup = .T. - lcolorizevfpcode = .F. - lcreateresultscollection = .F. && Indicates if you want to store each match result object into the oResults colleciton on the Search Engine class. - lcreateresultscursor = .T. && Inidcates if you want to store each search result in a local cursor. See cSearchResultsAlias propertyy on the Search Class for the namee of the Cursor. - ldonotshowreplacewarning = .F. && This will supress the warning dialog that pops up every time you perform a replace. - lenablereplacemode = .F. - lignorememberdata = .F. - lignorepropertiesfield = .F. - lincludeallfiletypes = .F. && Not used. - lincludeasp = .T. - lincludedbc = .F. - lincludefrx = .T. - lincludeh = .T. - lincludehtml = .T. - lincludeini = .T. - lincludejava = .T. - lincludejsp = .T. - lincludelbx = .T. - lincludemnx = .T. - lincludempr = .T. - lincludepjx = .F. - lincludeprg = .T. - lincludescx = .T. - lincludespr = .T. - lincludesubdirectories = .T. - lincludetxt = .T. - lincludevcx = .T. - lincludexml = .T. - llimittoprojectfolder = .F. && When searching a PJX file, this flag will skip over searches on any files in the project which are not located in or below the Project's home path. - lmatchcase = .F. - lmatchwholeword = .F. - lpreviewreplace = .T. - lregularexpression = .F. && Indicates if the cSearchExpression is intended to be used as a Regular Expression. - lsearchincomments = .T. - lshowadvancedformonstartup = .F. - lshowerrormessages = .T. && Determines if a messagebox will pop up any time there is an error on the Search or Replace family of methods. - lshownomatchesmessage = .T. && Display a MessageBox at the end of a search if there were no matches found. - lshowwaitmessages = .F. && Will display the name of each file in a wait window as they are being processed. Caution: using this feature slows down the search a good bit. - lskipfiles = .F. && A flag to indicate if the user wants to process the files in cFilesToSkipFile files to skip over certain files during the search. - lstorecode = .F. && Indicates if you want a copy of the code block stored on each search reesult record (for ResultsCursor) or collection node (for ResultsCollection). - ltimestamp = .F. && Indicates if the search will be limited to filedates and object TimeStamps that fall on or between the dTimeStampForm and dTimeStampTo values. - lwarnwhenunabletoopenfilesduringsearch = .T. - Name = "gofishsearchoptions" - nhtmlmatchlinecolor = 8454143 - nmaxresults = 10000 && Limits the amx number of results created. Search will stop at this limit. Collection restutls over 50,000 with lStoreCode = .t. could lead to memory problems. - nsearchmode = 1 && Indicates which search mode to use: Plain, LIKE, or RegEx. See GoFish.h constants file for values. - nsearchscope = 1 && 1 = Active Project, 2=Browse Project, 3 = Current Dir, 4= Browse Directory - Width = 160 - _memberdata = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - && XML Metadata for customizable properties - - PROCEDURE lregularexpression_access - Return (This.nSearchMode = GF_SEARCH_MODE_REGEX) - - ENDPROC - -ENDDEFINE diff --git a/Source/Lib/Not_Used/gofishsearchengine.vct b/Source/Lib/Not_Used/gofishsearchengine.vct deleted file mode 100644 index ce7a9ff..0000000 Binary files a/Source/Lib/Not_Used/gofishsearchengine.vct and /dev/null differ diff --git a/Source/Lib/ObjectExplorerVersion.h b/Source/Lib/ObjectExplorerVersion.h new file mode 100644 index 0000000..617b4bf --- /dev/null +++ b/Source/Lib/ObjectExplorerVersion.h @@ -0,0 +1 @@ +#DEFINE VERSION_NUMBER "Ver 3.51.01 : 2023-09-28" \ No newline at end of file diff --git a/Source/Lib/PEME_basetools.h b/Source/Lib/PEME_basetools.h index 109fc09..5d10d7b 100644 --- a/Source/Lib/PEME_basetools.h +++ b/Source/Lib/PEME_basetools.h @@ -1,32 +1,32 @@ -#include FoxPro.H - -#Define CR Chr(13) - -#define ccCR chr(13) - * carriage return -#define ccLF chr(10) - * linefeed -#define ccCRLF chr(13) + chr(10) - * carriage return + linefeed -#define ccTAB chr(9) - * tab - -*-- Function Parameters -*-- MessageBox parameters -#DEFINE MB_OK 0 && OK button only -#DEFINE MB_OKCANCEL 1 && OK and Cancel buttons -#DEFINE MB_ABORTRETRYIGNORE 2 && Abort, Retry, and Ignore buttons -#DEFINE MB_YESNOCANCEL 3 && Yes, No, and Cancel buttons -#DEFINE MB_YESNO 4 && Yes and No buttons -#DEFINE MB_RETRYCANCEL 5 && Retry and Cancel buttons - -#DEFINE MB_ICONSTOP 16 && Critical message -#DEFINE MB_ICONQUESTION 32 && Warning query -#DEFINE MB_ICONEXCLAMATION 48 && Warning message -#DEFINE MB_ICONINFORMATION 64 && Information message - -#DEFINE MB_APPLMODAL 0 && Application modal message box -#DEFINE MB_DEFBUTTON1 0 && First button is default -#DEFINE MB_DEFBUTTON2 256 && Second button is default -#DEFINE MB_DEFBUTTON3 512 && Third button is default +#include FoxPro.H + +#Define CR Chr(13) + +#define ccCR chr(13) + * carriage return +#define ccLF chr(10) + * linefeed +#define ccCRLF chr(13) + chr(10) + * carriage return + linefeed +#define ccTAB chr(9) + * tab + +*-- Function Parameters +*-- MessageBox parameters +#DEFINE MB_OK 0 && OK button only +#DEFINE MB_OKCANCEL 1 && OK and Cancel buttons +#DEFINE MB_ABORTRETRYIGNORE 2 && Abort, Retry, and Ignore buttons +#DEFINE MB_YESNOCANCEL 3 && Yes, No, and Cancel buttons +#DEFINE MB_YESNO 4 && Yes and No buttons +#DEFINE MB_RETRYCANCEL 5 && Retry and Cancel buttons + +#DEFINE MB_ICONSTOP 16 && Critical message +#DEFINE MB_ICONQUESTION 32 && Warning query +#DEFINE MB_ICONEXCLAMATION 48 && Warning message +#DEFINE MB_ICONINFORMATION 64 && Information message + +#DEFINE MB_APPLMODAL 0 && Application modal message box +#DEFINE MB_DEFBUTTON1 0 && First button is default +#DEFINE MB_DEFBUTTON2 256 && Second button is default +#DEFINE MB_DEFBUTTON3 512 && Third button is default #DEFINE MB_SYSTEMMODAL 4096 && System Modal \ No newline at end of file diff --git a/Source/Lib/VFP/FFC/_base._activedoc.vc2 b/Source/Lib/VFP/FFC/_base._activedoc.vc2 new file mode 100644 index 0000000..14637d4 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._activedoc.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _activedoc AS activedoc && Foundation ActiveDoc class. + *< CLASSDATA: Baseclass="activedoc" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 68 + Name = "_activedoc" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 68 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._checkbox.vc2 b/Source/Lib/VFP/FFC/_base._checkbox.vc2 new file mode 100644 index 0000000..0d7f8f6 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._checkbox.vc2 @@ -0,0 +1,227 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _checkbox AS checkbox && Foundation CheckBox class. + *< CLASSDATA: Baseclass="checkbox" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + Caption = "Check1" + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 17 + Name = "_checkbox" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 60 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._collection.vc2 b/Source/Lib/VFP/FFC/_base._collection.vc2 new file mode 100644 index 0000000..d210c28 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._collection.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _collection AS collection && Foundation Collection class. + *< CLASSDATA: Baseclass="collection" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 23 + Name = "_collection" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 23 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._combobox.vc2 b/Source/Lib/VFP/FFC/_base._combobox.vc2 new file mode 100644 index 0000000..4a7af71 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._combobox.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _combobox AS combobox && Foundation ComboBox class. + *< CLASSDATA: Baseclass="combobox" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 24 + Name = "_combobox" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 100 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._commandbutton.vc2 b/Source/Lib/VFP/FFC/_base._commandbutton.vc2 new file mode 100644 index 0000000..e955217 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._commandbutton.vc2 @@ -0,0 +1,227 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _commandbutton AS commandbutton && Foundation CommandButton class. + *< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + Caption = "Command1" + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 27 + Name = "_commandbutton" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 84 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._commandgroup.vc2 b/Source/Lib/VFP/FFC/_base._commandgroup.vc2 new file mode 100644 index 0000000..ed233cb --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._commandgroup.vc2 @@ -0,0 +1,240 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _commandgroup AS commandgroup && Foundation CommandGroup class. + *< CLASSDATA: Baseclass="commandgroup" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + ButtonCount = 2 + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 66 + Name = "_commandgroup" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + Value = 1 + vresult = .T. + Width = 94 + Command1.Caption = "Command1" + Command1.Height = 27 + Command1.Left = 5 + Command1.Name = "Command1" + Command1.Top = 5 + Command1.Width = 84 + Command2.Caption = "Command2" + Command2.Height = 27 + Command2.Left = 5 + Command2.Name = "Command2" + Command2.Top = 34 + Command2.Width = 84 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._container.vc2 b/Source/Lib/VFP/FFC/_base._container.vc2 new file mode 100644 index 0000000..bc5a38e --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._container.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _container AS container && Foundation Container class. + *< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 200 + Name = "_container" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 200 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._control.vc2 b/Source/Lib/VFP/FFC/_base._control.vc2 new file mode 100644 index 0000000..1352014 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._control.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _control AS control && Foundation Control class. + *< CLASSDATA: Baseclass="control" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 22 + Name = "_control" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 24 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._cursor2.vc2 b/Source/Lib/VFP/FFC/_base._cursor2.vc2 new file mode 100644 index 0000000..199db35 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._cursor2.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _cursor2 AS cursor && Foundation Cursor class. + *< CLASSDATA: Baseclass="cursor" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 23 + Name = "_cursor2" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 23 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._cursoradapter.vc2 b/Source/Lib/VFP/FFC/_base._cursoradapter.vc2 new file mode 100644 index 0000000..d226f10 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._cursoradapter.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _cursoradapter AS cursoradapter && Foundation CursorAdapter class. + *< CLASSDATA: Baseclass="cursoradapter" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 22 + Name = "_cursoradapter" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 23 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._custom.vc2 b/Source/Lib/VFP/FFC/_base._custom.vc2 new file mode 100644 index 0000000..c6e109c --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._custom.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _custom AS custom && Foundation Custom class. + *< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 22 + Name = "_custom" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 24 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._dataenvironment2.vc2 b/Source/Lib/VFP/FFC/_base._dataenvironment2.vc2 new file mode 100644 index 0000000..3d88348 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._dataenvironment2.vc2 @@ -0,0 +1,227 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _dataenvironment2 AS dataenvironment && Foundation DataEnvironment class. + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + DataSource = .NULL. + Height = 22 + Name = "_dataenvironment2" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 24 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._editbox.vc2 b/Source/Lib/VFP/FFC/_base._editbox.vc2 new file mode 100644 index 0000000..bd1b461 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._editbox.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _editbox AS editbox && Foundation EditBox class. + *< CLASSDATA: Baseclass="editbox" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 53 + Name = "_editbox" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 100 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._form.vc2 b/Source/Lib/VFP/FFC/_base._form.vc2 new file mode 100644 index 0000000..95cff7a --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._form.vc2 @@ -0,0 +1,227 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _form AS form && Foundation Form class. + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + Caption = "Form1" + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + DoCreate = .T. + Name = "_form" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + ShowWindow = 1 + vresult = .T. + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._formset.vc2 b/Source/Lib/VFP/FFC/_base._formset.vc2 new file mode 100644 index 0000000..962ab4b --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._formset.vc2 @@ -0,0 +1,415 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _formset AS formset && Foundation FormSet class. + *< CLASSDATA: Baseclass="formset" Timestamp="" Scale="" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Form1" UniqueID="" Timestamp="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Name = "_formset" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + * + + ADD OBJECT 'Form1' AS _form WITH ; + builder = , ; + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm"), ; + Caption = "Form1", ; + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg"), ; + cversion = , ; + DoCreate = .T., ; + Name = "Form1", ; + ninstances = 0, ; + nobjectrefcount = 0, ; + ohost = .NULL., ; + vresult = .T. + *< END OBJECT: ClassLib="_base.vcx" BaseClass="form" /> + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + + PROCEDURE Form1.addtoproject + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Form1.Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Form1.Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Form1.Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE Form1.newinstance + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE Form1.ninstances_access + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE Form1.ninstances_assign + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE Form1.nobjectrefcount_access + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE Form1.nobjectrefcount_assign + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE Form1.release + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE Form1.releaseobjrefs + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE Form1.sethost + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE Form1.setobjectref + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE Form1.setobjectrefs + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._grid.vc2 b/Source/Lib/VFP/FFC/_base._grid.vc2 new file mode 100644 index 0000000..0fbcff5 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._grid.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _grid AS grid && Foundation Grid class. + *< CLASSDATA: Baseclass="grid" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 200 + Name = "_grid" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 320 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._hyperlink.vc2 b/Source/Lib/VFP/FFC/_base._hyperlink.vc2 new file mode 100644 index 0000000..abc4043 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._hyperlink.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _hyperlink AS hyperlink && Foundation Hyperlink class. + *< CLASSDATA: Baseclass="hyperlink" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 23 + Name = "_hyperlink" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 23 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._image.vc2 b/Source/Lib/VFP/FFC/_base._image.vc2 new file mode 100644 index 0000000..398e192 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._image.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _image AS image && Foundation Image class. + *< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 68 + Name = "_image" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 68 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._label.vc2 b/Source/Lib/VFP/FFC/_base._label.vc2 new file mode 100644 index 0000000..5146241 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._label.vc2 @@ -0,0 +1,227 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _label AS label && Foundation Label class. + *< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + Caption = "Label1" + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 16 + Name = "_label" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 40 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._line.vc2 b/Source/Lib/VFP/FFC/_base._line.vc2 new file mode 100644 index 0000000..c1dd7d9 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._line.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _line AS line && Foundation Line class. + *< CLASSDATA: Baseclass="line" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 68 + Name = "_line" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 68 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._listbox.vc2 b/Source/Lib/VFP/FFC/_base._listbox.vc2 new file mode 100644 index 0000000..28f1284 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._listbox.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _listbox AS listbox && Foundation Listbox class. + *< CLASSDATA: Baseclass="listbox" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 170 + Name = "_listbox" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 100 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._optionbutton2.vc2 b/Source/Lib/VFP/FFC/_base._optionbutton2.vc2 new file mode 100644 index 0000000..12f3444 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._optionbutton2.vc2 @@ -0,0 +1,227 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _optionbutton2 AS optionbutton && Foundation OptionButton class. + *< CLASSDATA: Baseclass="optionbutton" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + Caption = "Option1" + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 17 + Name = "_optionbutton2" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 61 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._optiongroup.vc2 b/Source/Lib/VFP/FFC/_base._optiongroup.vc2 new file mode 100644 index 0000000..71a0494 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._optiongroup.vc2 @@ -0,0 +1,241 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _optiongroup AS optiongroup && Foundation OptionGroup class. + *< CLASSDATA: Baseclass="optiongroup" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + ButtonCount = 2 + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 46 + Name = "_optiongroup" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + Value = 1 + vresult = .T. + Width = 71 + Option1.Caption = "Option1" + Option1.Height = 17 + Option1.Left = 5 + Option1.Name = "Option1" + Option1.Top = 5 + Option1.Value = 1 + Option1.Width = 61 + Option2.Caption = "Option2" + Option2.Height = 17 + Option2.Left = 5 + Option2.Name = "Option2" + Option2.Top = 24 + Option2.Width = 61 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._page2.vc2 b/Source/Lib/VFP/FFC/_base._page2.vc2 new file mode 100644 index 0000000..229960e --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._page2.vc2 @@ -0,0 +1,227 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _page2 AS page && Foundation Page class. + *< CLASSDATA: Baseclass="page" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + Caption = "Page1" + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 16 + Name = "_page2" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 60 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._pageframe.vc2 b/Source/Lib/VFP/FFC/_base._pageframe.vc2 new file mode 100644 index 0000000..aabeadd --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._pageframe.vc2 @@ -0,0 +1,232 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _pageframe AS pageframe && Foundation PageFrame class. + *< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + ErasePage = .T. + Height = 169 + Name = "_pageframe" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + PageCount = 2 + vresult = .T. + Width = 241 + Page1.Caption = "Page1" + Page1.Name = "Page1" + Page2.Caption = "Page2" + Page2.Name = "Page2" + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._projecthook.vc2 b/Source/Lib/VFP/FFC/_base._projecthook.vc2 new file mode 100644 index 0000000..fb92490 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._projecthook.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _projecthook AS projecthook && Foundation ProjectHook class. + *< CLASSDATA: Baseclass="projecthook" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 68 + Name = "_projecthook" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 68 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._relation2.vc2 b/Source/Lib/VFP/FFC/_base._relation2.vc2 new file mode 100644 index 0000000..6688a2a --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._relation2.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _relation2 AS relation && Foundation Relation class. + *< CLASSDATA: Baseclass="relation" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 23 + Name = "_relation2" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 23 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._separator.vc2 b/Source/Lib/VFP/FFC/_base._separator.vc2 new file mode 100644 index 0000000..1a66812 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._separator.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _separator AS separator && Foundation Separator class. + *< CLASSDATA: Baseclass="separator" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 0 + Name = "_separator" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 0 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._shape.vc2 b/Source/Lib/VFP/FFC/_base._shape.vc2 new file mode 100644 index 0000000..470b38e --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._shape.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _shape AS shape && Foundation Shape class. + *< CLASSDATA: Baseclass="shape" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 68 + Name = "_shape" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 68 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._spinner.vc2 b/Source/Lib/VFP/FFC/_base._spinner.vc2 new file mode 100644 index 0000000..72485c4 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._spinner.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _spinner AS spinner && Foundation Spinner class. + *< CLASSDATA: Baseclass="spinner" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 24 + Name = "_spinner" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 120 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._textbox.vc2 b/Source/Lib/VFP/FFC/_base._textbox.vc2 new file mode 100644 index 0000000..365b849 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._textbox.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _textbox AS textbox && Foundation TextBox class. + *< CLASSDATA: Baseclass="textbox" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 23 + Name = "_textbox" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 100 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._timer.vc2 b/Source/Lib/VFP/FFC/_base._timer.vc2 new file mode 100644 index 0000000..671387a --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._timer.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _timer AS timer && Foundation Timer class. + *< CLASSDATA: Baseclass="timer" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 23 + Name = "_timer" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 23 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._toolbar.vc2 b/Source/Lib/VFP/FFC/_base._toolbar.vc2 new file mode 100644 index 0000000..c66488a --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._toolbar.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _toolbar AS toolbar && Foundation Toolbar class. + *< CLASSDATA: Baseclass="toolbar" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + Caption = "Toolbar1" + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Name = "_toolbar" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + ShowWindow = 1 + vresult = .T. + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._xmladapter.vc2 b/Source/Lib/VFP/FFC/_base._xmladapter.vc2 new file mode 100644 index 0000000..a495f80 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._xmladapter.vc2 @@ -0,0 +1,237 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _xmladapter AS xmladapter && Foundation XMLAdapter class. + *< CLASSDATA: Baseclass="xmladapter" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Tables" UniqueID="" Timestamp="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 56 + Name = "_xmladapter" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 56 + * + + ADD OBJECT 'Tables' AS collection WITH ; + Height = 23, ; + Left = 23, ; + Name = "Tables", ; + Top = 23, ; + Width = 23 + *< END OBJECT: BaseClass="collection" /> + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._xmlfield.vc2 b/Source/Lib/VFP/FFC/_base._xmlfield.vc2 new file mode 100644 index 0000000..610dce6 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._xmlfield.vc2 @@ -0,0 +1,226 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _xmlfield AS xmlfield && Foundation XMLField class. + *< CLASSDATA: Baseclass="xmlfield" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 23 + Name = "_xmlfield" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 23 + * + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base._xmltable.vc2 b/Source/Lib/VFP/FFC/_base._xmltable.vc2 new file mode 100644 index 0000000..913e457 --- /dev/null +++ b/Source/Lib/VFP/FFC/_base._xmltable.vc2 @@ -0,0 +1,237 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _xmltable AS xmltable && Foundation XMLTable class. + *< CLASSDATA: Baseclass="xmltable" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Fields" UniqueID="" Timestamp="" /> + + * + *m: addtoproject && Dummy code for adding files to project. + *m: newinstance && Returns new instance of object. + *m: ninstances_access && Access method for nInstances property. + *m: ninstances_assign && Assign method for nInstances property. + *m: nobjectrefcount_access && Access method for nObjectRefCount property. + *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. + *m: release && Releases object from memory. + *m: releaseobjrefs && Releases all object references of aObjectRefs array. + *m: sethost && Set oHost property to form reference object. + *m: setobjectref && Set object reference to specific property. + *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. + *p: builder && Bulder property. + *p: builderx && BuilderX property. + *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. + *p: cversion && Version property. + *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. + *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. + *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. + *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. + *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. + *p: ninstances && Number of instances. + *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. + *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. + *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. + *a: aobjectrefs[1,3] && Array of object references properties. + * + + * + builder = + builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") + csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") + cversion = + Height = 56 + Name = "_xmltable" + ninstances = 0 + nobjectrefcount = 0 + ohost = .NULL. + vresult = .T. + Width = 56 + * + + ADD OBJECT 'Fields' AS collection WITH ; + Height = 23, ; + Left = 23, ; + Name = "Fields", ; + Top = 23, ; + Width = 23 + *< END OBJECT: BaseClass="collection" /> + + PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. + *-- Dummy code for adding files to project. + RETURN + + DO SetObjRf.prg + + ENDPROC + + PROCEDURE Destroy + IF this.lRelease + RETURN .F. + ENDIF + this.lRelease=.T. + this.ReleaseObjRefs + this.oHost=.NULL. + + ENDPROC + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + lcOnError=UPPER(ALLTRIM(ON("ERROR"))) + IF NOT EMPTY(lcOnError) + lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; + "PROGRAM()","cMethod"),"LINENO()","nLine") + &lcOnError + RETURN + ENDIF + lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; + "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; + "Method: "+LOWER(ALLTRIM(cMethod)) + lcCodeLineMsg=MESSAGE(1) + IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) + IF NOT EMPTY(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg + ENDIF + ENDIF + WAIT CLEAR + MESSAGEBOX(lcErrorMsg,16,_screen.Caption) + ERROR nError + + ENDPROC + + PROCEDURE Init + IF this.lSetHost + this.SetHost + ENDIF + IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) + RETURN .F. + ENDIF + + ENDPROC + + PROCEDURE newinstance && Returns new instance of object. + LPARAMETERS tnDataSessionID + LOCAL oNewObject,lnLastDataSessionID + + lnLastDataSessionID=SET("DATASESSION") + IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 + SET DATASESSION TO tnDataSessionID + ENDIF + oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) + SET DATASESSION TO (lnLastDataSessionID) + RETURN oNewObject + + ENDPROC + + PROCEDURE ninstances_access && Access method for nInstances property. + LOCAL laInstances[1] + + RETURN AINSTANCE(laInstances,this.Class) + + ENDPROC + + PROCEDURE ninstances_assign && Assign method for nInstances property. + LPARAMETERS vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. + LOCAL lnObjectRefCount + + lnObjectRefCount=ALEN(this.aObjectRefs,1) + IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) + lnObjectRefCount=0 + ENDIF + RETURN lnObjectRefCount + + ENDPROC + + PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. + LPARAMETERS m.vNewVal + + ERROR 1743 + + ENDPROC + + PROCEDURE release && Releases object from memory. + LOCAL lcBaseClass + + IF this.lRelease + NODEFAULT + RETURN .F. + ENDIF + this.lRelease=.T. + lcBaseClass=LOWER(this.BaseClass) + this.oHost=.NULL. + this.ReleaseObjRefs + IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") + RELEASE this + ENDIF + + ENDPROC + + PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. + LOCAL lcName,oObject,lnCount + + IF this.nObjectRefCount=0 + RETURN + ENDIF + FOR lnCount = this.nObjectRefCount TO 1 STEP -1 + lcName=this.aObjectRefs[lnCount,1] + IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" + LOOP + ENDIF + oObject=this.&lcName + IF ISNULL(oObject) + LOOP + ENDIF + IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) + oObject.Release + ENDIF + IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) + oObject.oHost=.NULL. + ENDIF + this.&lcName=.NULL. + oObject=.NULL. + ENDFOR + DIMENSION this.aObjectRefs[1,3] + this.aObjectRefs="" + + ENDPROC + + PROCEDURE sethost && Set oHost property to form reference object. + this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) + + ENDPROC + + PROCEDURE setobjectref && Set object reference to specific property. + LPARAMETERS tcName,tvClass,tvClassLibrary + LOCAL lvResult + + this.vResult=.T. + DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) + lvResult=this.vResult + this.vResult=.T. + RETURN lvResult + + ENDPROC + + PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. + LPARAMETERS toObject + + RETURN + + ENDPROC + +ENDDEFINE diff --git a/Source/Lib/VFP/FFC/_base.vc2 b/Source/Lib/VFP/FFC/_base.vc2 index 0a456a3..b031360 100644 --- a/Source/Lib/VFP/FFC/_base.vc2 +++ b/Source/Lib/VFP/FFC/_base.vc2 @@ -1,8143 +1,45 @@ -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! -* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! -*-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) -* -* -DEFINE CLASS _activedoc AS activedoc && Foundation ActiveDoc class. - *< CLASSDATA: Baseclass="activedoc" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 68 - Name = "_activedoc" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 68 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _checkbox AS checkbox && Foundation CheckBox class. - *< CLASSDATA: Baseclass="checkbox" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - Caption = "Check1" - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 17 - Name = "_checkbox" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 60 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _collection AS collection && Foundation Collection class. - *< CLASSDATA: Baseclass="collection" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 23 - Name = "_collection" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 23 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _combobox AS combobox && Foundation ComboBox class. - *< CLASSDATA: Baseclass="combobox" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 24 - Name = "_combobox" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 100 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _commandbutton AS commandbutton && Foundation CommandButton class. - *< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - Caption = "Command1" - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 27 - Name = "_commandbutton" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 84 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _commandgroup AS commandgroup && Foundation CommandGroup class. - *< CLASSDATA: Baseclass="commandgroup" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - ButtonCount = 2 - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 66 - Name = "_commandgroup" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - Value = 1 - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 94 - Command1.Caption = "Command1" - Command1.Height = 27 - Command1.Left = 5 - Command1.Name = "Command1" - Command1.Top = 5 - Command1.Width = 84 - Command2.Caption = "Command2" - Command2.Height = 27 - Command2.Left = 5 - Command2.Name = "Command2" - Command2.Top = 34 - Command2.Width = 84 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _container AS container && Foundation Container class. - *< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 200 - Name = "_container" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 200 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _control AS control && Foundation Control class. - *< CLASSDATA: Baseclass="control" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 22 - Name = "_control" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 24 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _cursor2 AS cursor && Foundation Cursor class. - *< CLASSDATA: Baseclass="cursor" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 23 - Name = "_cursor2" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 23 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _cursoradapter AS cursoradapter && Foundation CursorAdapter class. - *< CLASSDATA: Baseclass="cursoradapter" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 22 - Name = "_cursoradapter" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 23 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _custom AS custom && Foundation Custom class. - *< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 22 - Name = "_custom" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 24 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _dataenvironment2 AS dataenvironment && Foundation DataEnvironment class. - *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - DataSource = .NULL. - Height = 22 - Name = "_dataenvironment2" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 24 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _editbox AS editbox && Foundation EditBox class. - *< CLASSDATA: Baseclass="editbox" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 53 - Name = "_editbox" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 100 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _form AS form && Foundation Form class. - *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - Caption = "Form1" - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - DoCreate = .T. - Name = "_form" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - ShowWindow = 1 - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _formset AS formset && Foundation FormSet class. - *< CLASSDATA: Baseclass="formset" Timestamp="" Scale="" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="Form1" UniqueID="" Timestamp="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Name = "_formset" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - - ADD OBJECT 'Form1' AS _form WITH ; - builder = , ; - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm"), ; - Caption = "Form1", ; - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg"), ; - cversion = , ; - DoCreate = .T., ; - Name = "Form1", ; - ninstances = 0, ; - nobjectrefcount = 0, ; - ohost = .NULL., ; - vresult = .T. - *< END OBJECT: ClassLib="_base.vcx" BaseClass="form" /> - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - - PROCEDURE Form1.addtoproject - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Form1.Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Form1.Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Form1.Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE Form1.newinstance - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE Form1.ninstances_access - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE Form1.ninstances_assign - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE Form1.nobjectrefcount_access - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE Form1.nobjectrefcount_assign - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE Form1.release - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE Form1.releaseobjrefs - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE Form1.sethost - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE Form1.setobjectref - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE Form1.setobjectrefs - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _grid AS grid && Foundation Grid class. - *< CLASSDATA: Baseclass="grid" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 200 - Name = "_grid" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 320 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _hyperlink AS hyperlink && Foundation Hyperlink class. - *< CLASSDATA: Baseclass="hyperlink" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 23 - Name = "_hyperlink" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 23 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _image AS image && Foundation Image class. - *< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 68 - Name = "_image" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 68 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _label AS label && Foundation Label class. - *< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - Caption = "Label1" - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 16 - Name = "_label" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 40 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _line AS line && Foundation Line class. - *< CLASSDATA: Baseclass="line" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 68 - Name = "_line" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 68 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _listbox AS listbox && Foundation Listbox class. - *< CLASSDATA: Baseclass="listbox" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 170 - Name = "_listbox" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 100 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _optionbutton2 AS optionbutton && Foundation OptionButton class. - *< CLASSDATA: Baseclass="optionbutton" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - Caption = "Option1" - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 17 - Name = "_optionbutton2" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 61 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _optiongroup AS optiongroup && Foundation OptionGroup class. - *< CLASSDATA: Baseclass="optiongroup" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - ButtonCount = 2 - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 46 - Name = "_optiongroup" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - Value = 1 - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 71 - Option1.Caption = "Option1" - Option1.Height = 17 - Option1.Left = 5 - Option1.Name = "Option1" - Option1.Top = 5 - Option1.Value = 1 - Option1.Width = 61 - Option2.Caption = "Option2" - Option2.Height = 17 - Option2.Left = 5 - Option2.Name = "Option2" - Option2.Top = 24 - Option2.Width = 61 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _page2 AS page && Foundation Page class. - *< CLASSDATA: Baseclass="page" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - Caption = "Page1" - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 16 - Name = "_page2" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 60 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _pageframe AS pageframe && Foundation PageFrame class. - *< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - ErasePage = .T. - Height = 169 - Name = "_pageframe" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - PageCount = 2 - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 241 - Page1.Caption = "Page1" - Page1.Name = "Page1" - Page2.Caption = "Page2" - Page2.Name = "Page2" - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _projecthook AS projecthook && Foundation ProjectHook class. - *< CLASSDATA: Baseclass="projecthook" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 68 - Name = "_projecthook" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 68 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _relation2 AS relation && Foundation Relation class. - *< CLASSDATA: Baseclass="relation" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 23 - Name = "_relation2" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 23 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _separator AS separator && Foundation Separator class. - *< CLASSDATA: Baseclass="separator" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 0 - Name = "_separator" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 0 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _shape AS shape && Foundation Shape class. - *< CLASSDATA: Baseclass="shape" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 68 - Name = "_shape" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 68 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _spinner AS spinner && Foundation Spinner class. - *< CLASSDATA: Baseclass="spinner" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 24 - Name = "_spinner" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 120 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _textbox AS textbox && Foundation TextBox class. - *< CLASSDATA: Baseclass="textbox" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 23 - Name = "_textbox" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 100 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _timer AS timer && Foundation Timer class. - *< CLASSDATA: Baseclass="timer" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 23 - Name = "_timer" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 23 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _toolbar AS toolbar && Foundation Toolbar class. - *< CLASSDATA: Baseclass="toolbar" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - Caption = "Toolbar1" - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Name = "_toolbar" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - ShowWindow = 1 - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _xmladapter AS xmladapter && Foundation XMLAdapter class. - *< CLASSDATA: Baseclass="xmladapter" Timestamp="" Scale="Pixels" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="Tables" UniqueID="" Timestamp="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 56 - Name = "_xmladapter" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 56 - - ADD OBJECT 'Tables' AS collection WITH ; - Height = 23, ; - Left = 23, ; - Name = "Tables", ; - Top = 23, ; - Width = 23 - *< END OBJECT: BaseClass="collection" /> - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _xmlfield AS xmlfield && Foundation XMLField class. - *< CLASSDATA: Baseclass="xmlfield" Timestamp="" Scale="Pixels" Uniqueid="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 23 - Name = "_xmlfield" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 23 - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE - -DEFINE CLASS _xmltable AS xmltable && Foundation XMLTable class. - *< CLASSDATA: Baseclass="xmltable" Timestamp="" Scale="Pixels" Uniqueid="" /> - - *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder - *< OBJECTDATA: ObjPath="Fields" UniqueID="" Timestamp="" /> - - * - *m: addtoproject && Dummy code for adding files to project. - *m: newinstance && Returns new instance of object. - *m: ninstances_access && Access method for nInstances property. - *m: ninstances_assign && Assign method for nInstances property. - *m: nobjectrefcount_access && Access method for nObjectRefCount property. - *m: nobjectrefcount_assign && Assign method for nObjectRefCount property. - *m: release && Releases object from memory. - *m: releaseobjrefs && Releases all object references of aObjectRefs array. - *m: sethost && Set oHost property to form reference object. - *m: setobjectref && Set object reference to specific property. - *m: setobjectrefs && Place holder method for listing SetObjectRef method calls. - *p: builder && Bulder property. - *p: builderx && BuilderX property. - *p: csetobjrefprogram && Program to be called when when setting an object references via the SetObjectRef method. - *p: cversion && Version property. - *p: lautobuilder && Specifies if custom FFC builder is automatically launched when instance is added to a container in design mode, even if the control pallette Builder Lock button is off. - *p: lautosetobjectrefs && Specifiies if the SetObjectRefs method is automatically called from the Init method. - *p: lignoreerrors && Specifies if the default FFC error handler is executed when an error occurs. - *p: lrelease && Indicates the object's Release method has been executed and the object is in the process of being released from memory. - *p: lsethost && Specifies if the SetHost method is automatically called from the Init method to set the oHost property to THISFORM. - *p: ninstances && Number of instances. - *p: nobjectrefcount && Returns the number of items in the object reference array property aObjectRefs. - *p: ohost && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - *p: vresult && Variant result property for internal usage when calling programs in PRGs and a return file is required. - *a: aobjectrefs[1,3] && Array of object references properties. - * - - builder = && Bulder property. - builderx = (HOME()+"Wizards\BuilderD,BuilderDForm") && BuilderX property. - csetobjrefprogram = (IIF(VERSION(2)=0,"",HOME()+"FFC\")+"SetObjRf.prg") && Program to be called when when setting an object references via the SetObjectRef method. - cversion = && Version property. - Height = 56 - Name = "_xmltable" - ninstances = 0 && Number of instances. - nobjectrefcount = 0 && Returns the number of items in the object reference array property aObjectRefs. - ohost = .NULL. && Object reference to host object (generally THISFORM), which is automatically set on Init if lSetHost is .T. - vresult = .T. && Variant result property for internal usage when calling programs in PRGs and a return file is required. - Width = 56 - - ADD OBJECT 'Fields' AS collection WITH ; - Height = 23, ; - Left = 23, ; - Name = "Fields", ; - Top = 23, ; - Width = 23 - *< END OBJECT: BaseClass="collection" /> - - PROTECTED PROCEDURE addtoproject && Dummy code for adding files to project. - *-- Dummy code for adding files to project. - RETURN - - DO SetObjRf.prg - - ENDPROC - - PROCEDURE Destroy - IF this.lRelease - RETURN .F. - ENDIF - this.lRelease=.T. - this.ReleaseObjRefs - this.oHost=.NULL. - - ENDPROC - - PROCEDURE Error - LPARAMETERS nError, cMethod, nLine - LOCAL lcOnError,lcErrorMsg,lcCodeLineMsg - - IF this.lIgnoreErrors OR _vfp.StartMode>0 - RETURN .F. - ENDIF - lcOnError=UPPER(ALLTRIM(ON("ERROR"))) - IF NOT EMPTY(lcOnError) - lcOnError=STRTRAN(STRTRAN(STRTRAN(lcOnError,"ERROR()","nError"), ; - "PROGRAM()","cMethod"),"LINENO()","nLine") - &lcOnError - RETURN - ENDIF - lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)+this.Name+CHR(13)+ ; - "Error: "+ALLTRIM(STR(nError))+CHR(13)+ ; - "Method: "+LOWER(ALLTRIM(cMethod)) - lcCodeLineMsg=MESSAGE(1) - IF BETWEEN(nLine,1,100000) AND NOT lcCodeLineMsg="..." - lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine)) - IF NOT EMPTY(lcCodeLineMsg) - lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg - ENDIF - ENDIF - WAIT CLEAR - MESSAGEBOX(lcErrorMsg,16,_screen.Caption) - ERROR nError - - ENDPROC - - PROCEDURE Init - IF this.lSetHost - this.SetHost - ENDIF - IF this.lAutoSetObjectRefs AND NOT this.SetObjectRefs(this) - RETURN .F. - ENDIF - - ENDPROC - - PROCEDURE newinstance && Returns new instance of object. - LPARAMETERS tnDataSessionID - LOCAL oNewObject,lnLastDataSessionID - - lnLastDataSessionID=SET("DATASESSION") - IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 - SET DATASESSION TO tnDataSessionID - ENDIF - oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) - SET DATASESSION TO (lnLastDataSessionID) - RETURN oNewObject - - ENDPROC - - PROCEDURE ninstances_access && Access method for nInstances property. - LOCAL laInstances[1] - - RETURN AINSTANCE(laInstances,this.Class) - - ENDPROC - - PROCEDURE ninstances_assign && Assign method for nInstances property. - LPARAMETERS vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE nobjectrefcount_access && Access method for nObjectRefCount property. - LOCAL lnObjectRefCount - - lnObjectRefCount=ALEN(this.aObjectRefs,1) - IF lnObjectRefCount=1 AND EMPTY(this.aObjectRefs[1]) - lnObjectRefCount=0 - ENDIF - RETURN lnObjectRefCount - - ENDPROC - - PROCEDURE nobjectrefcount_assign && Assign method for nObjectRefCount property. - LPARAMETERS m.vNewVal - - ERROR 1743 - - ENDPROC - - PROCEDURE release && Releases object from memory. - LOCAL lcBaseClass - - IF this.lRelease - NODEFAULT - RETURN .F. - ENDIF - this.lRelease=.T. - lcBaseClass=LOWER(this.BaseClass) - this.oHost=.NULL. - this.ReleaseObjRefs - IF NOT INLIST(lcBaseClass+" ","form ","formset ","toolbar ") - RELEASE this - ENDIF - - ENDPROC - - PROCEDURE releaseobjrefs && Releases all object references of aObjectRefs array. - LOCAL lcName,oObject,lnCount - - IF this.nObjectRefCount=0 - RETURN - ENDIF - FOR lnCount = this.nObjectRefCount TO 1 STEP -1 - lcName=this.aObjectRefs[lnCount,1] - IF EMPTY(lcName) OR NOT PEMSTATUS(this,lcName,5) OR TYPE("this."+lcName)#"O" - LOOP - ENDIF - oObject=this.&lcName - IF ISNULL(oObject) - LOOP - ENDIF - IF TYPE("oObject")=="O" AND NOT ISNULL(oObject) AND PEMSTATUS(oObject,"Release",5) - oObject.Release - ENDIF - IF NOT ISNULL(oObject) AND PEMSTATUS(oObject,"oHost",5) - oObject.oHost=.NULL. - ENDIF - this.&lcName=.NULL. - oObject=.NULL. - ENDFOR - DIMENSION this.aObjectRefs[1,3] - this.aObjectRefs="" - - ENDPROC - - PROCEDURE sethost && Set oHost property to form reference object. - this.oHost=IIF(TYPE("thisform")=="O",thisform,.NULL.) - - ENDPROC - - PROCEDURE setobjectref && Set object reference to specific property. - LPARAMETERS tcName,tvClass,tvClassLibrary - LOCAL lvResult - - this.vResult=.T. - DO (this.cSetObjRefProgram) WITH (this),(tcName),(tvClass),(tvClassLibrary) - lvResult=this.vResult - this.vResult=.T. - RETURN lvResult - - ENDPROC - - PROCEDURE setobjectrefs && Place holder method for listing SetObjectRef method calls. - LPARAMETERS toObject - - RETURN - - ENDPROC - -ENDDEFINE +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_base.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas +*< EXTERNAL_CLASS: Name="_activedoc" Baseclass="activedoc" /> +*< EXTERNAL_CLASS: Name="_checkbox" Baseclass="checkbox" /> +*< EXTERNAL_CLASS: Name="_collection" Baseclass="collection" /> +*< EXTERNAL_CLASS: Name="_combobox" Baseclass="combobox" /> +*< EXTERNAL_CLASS: Name="_commandbutton" Baseclass="commandbutton" /> +*< EXTERNAL_CLASS: Name="_commandgroup" Baseclass="commandgroup" /> +*< EXTERNAL_CLASS: Name="_container" Baseclass="container" /> +*< EXTERNAL_CLASS: Name="_control" Baseclass="control" /> +*< EXTERNAL_CLASS: Name="_cursor2" Baseclass="cursor" /> +*< EXTERNAL_CLASS: Name="_cursoradapter" Baseclass="cursoradapter" /> +*< EXTERNAL_CLASS: Name="_custom" Baseclass="custom" /> +*< EXTERNAL_CLASS: Name="_dataenvironment2" Baseclass="dataenvironment" /> +*< EXTERNAL_CLASS: Name="_editbox" Baseclass="editbox" /> +*< EXTERNAL_CLASS: Name="_form" Baseclass="form" /> +*< EXTERNAL_CLASS: Name="_formset" Baseclass="formset" /> +*< EXTERNAL_CLASS: Name="_grid" Baseclass="grid" /> +*< EXTERNAL_CLASS: Name="_hyperlink" Baseclass="hyperlink" /> +*< EXTERNAL_CLASS: Name="_image" Baseclass="image" /> +*< EXTERNAL_CLASS: Name="_label" Baseclass="label" /> +*< EXTERNAL_CLASS: Name="_line" Baseclass="line" /> +*< EXTERNAL_CLASS: Name="_listbox" Baseclass="listbox" /> +*< EXTERNAL_CLASS: Name="_optionbutton2" Baseclass="optionbutton" /> +*< EXTERNAL_CLASS: Name="_optiongroup" Baseclass="optiongroup" /> +*< EXTERNAL_CLASS: Name="_page2" Baseclass="page" /> +*< EXTERNAL_CLASS: Name="_pageframe" Baseclass="pageframe" /> +*< EXTERNAL_CLASS: Name="_projecthook" Baseclass="projecthook" /> +*< EXTERNAL_CLASS: Name="_relation2" Baseclass="relation" /> +*< EXTERNAL_CLASS: Name="_separator" Baseclass="separator" /> +*< EXTERNAL_CLASS: Name="_shape" Baseclass="shape" /> +*< EXTERNAL_CLASS: Name="_spinner" Baseclass="spinner" /> +*< EXTERNAL_CLASS: Name="_textbox" Baseclass="textbox" /> +*< EXTERNAL_CLASS: Name="_timer" Baseclass="timer" /> +*< EXTERNAL_CLASS: Name="_toolbar" Baseclass="toolbar" /> +*< EXTERNAL_CLASS: Name="_xmladapter" Baseclass="xmladapter" /> +*< EXTERNAL_CLASS: Name="_xmlfield" Baseclass="xmlfield" /> +*< EXTERNAL_CLASS: Name="_xmltable" Baseclass="xmltable" /> + +* \ No newline at end of file diff --git a/Source/Lib/VFP/FFC/_base.vct b/Source/Lib/VFP/FFC/_base.vct index 93555c0..e771a97 100644 Binary files a/Source/Lib/VFP/FFC/_base.vct and b/Source/Lib/VFP/FFC/_base.vct differ diff --git a/Source/Lib/VFP/FFC/_base.vcx b/Source/Lib/VFP/FFC/_base.vcx index 987bfe1..79c3805 100644 Binary files a/Source/Lib/VFP/FFC/_base.vcx and b/Source/Lib/VFP/FFC/_base.vcx differ diff --git a/Source/Lib/VFP/FFC/_environ._runcode.vc2 b/Source/Lib/VFP/FFC/_environ._runcode.vc2 new file mode 100644 index 0000000..5b9ac0f --- /dev/null +++ b/Source/Lib/VFP/FFC/_environ._runcode.vc2 @@ -0,0 +1,456 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (ES) AUTOGENERADO - ATENCIN!! - NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.19" SourceFile="_environ.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +DEFINE CLASS _runcode AS _custom OF "_base.vcx" && Runs a block of VFP code via macros without compilation. + *< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + *m: runcode && RunCode(cCode[, lFile] [,llgnoreErrors]) + * + + * + cversion = 1.02 + Name = "_runcode" + * + + PROCEDURE Error + LPARAMETERS nError, cMethod, nLine + + IF this.lIgnoreErrors OR _vfp.StartMode>0 + RETURN .F. + ENDIF + DODEFAULT(nError, cMethod, nLine) + return + + ENDPROC + + PROCEDURE runcode && RunCode(cCode[, lFile] [,llgnoreErrors]) + * RunCode.PRG - Run code block interpreter. + * Version 2.00 + * + * Copyright (c) 1998-1999 Microsoft Corp. + * 1 Microsoft Way + * Redmond, WA 98052 + * + * Description: + * Runs a block of VFP code via macros without compilation. + * + * Parameter list: + * cCode: Code to execute or file name that contains code to execute + * lFile: Specifies source file mode. + * .F./Empty = Code is specified by cCode. + * .T. = Code is imported from specified file via cCode value. + * lIgnoreErrors: Specifies error handling mode. + * .F./Empty = Errors are trapped and displayed in a wait window. + * .T. = All errors are ignored. + + + LPARAMETERS __tcCode,__tlFile,__tvIgnoreErrors + LOCAL __lcCode,__lcOnError,__llArrayCode,__lcLine,__lnLine,__lcLine2,__llVFP60 + LOCAL __lcCommand,__lcExpr,__lcChar,__lnAtPos,__lnAtPos2,__lnOccurrence + LOCAL __lnLineTotal,__llTextMode,__lcLastOnError,__lvResult + LOCAL __lcDoExpr,__lnDoLine,__lnDoLineTotal,__lnDoStackCount + LOCAL __lcForExpr,__lnForMax,__lnForStep,__lnForLine,__lnForLineTotal,__lnForStackCount + LOCAL __lcIfExpr,__llIfExpr,__lnIfLine,__lnIfLineTotal,__lnIfStackCount + LOCAL __laLines[1],__laForLines[1],__laIfLines[1],__laDoLines[1] + EXTERNAL ARRAY __tcCode,__laLines,__laForLines,__laIfLines,__laDoLines + + #DEFINE TAB CHR(9) + #DEFINE LF CHR(10) + #DEFINE CR CHR(13) + #DEFINE CR_LF CR+LF + + IF VARTYPE(__tvIgnoreErrors)=="C" + __lcOnError=ALLTRIM(__tvIgnoreErrors) + ELSE + __lcOnError=IIF(__tvIgnoreErrors,"=.F.","__") + ENDIF + __llVFP60=" 06.0"$VERSION() + IF NOT __llVFP60 + __lcLastOnError=ON("ERROR") + IF __tvIgnoreErrors + ON ERROR =.F. + ELSE + ON ERROR + ENDIF + __lvResult=.T. + IF __tlFile + __lcCode="" + __lcCode=ALLTRIM(FILETOSTR(__tcCode)) + ELSE + __lcCode=IIF(VARTYPE(__tcCode)=="C",__tcCode,"") + ENDIF + IF LEFT(__lcCode,1)==";" + __lcCode=STRTRAN(__lcCode,";",CR_LF) + ENDIF + __lvResult=EVALUATE("ExecScript(__lcCode)") + IF EMPTY(__lcLastOnError) + ON ERROR + ELSE + ON ERROR &__lcLastOnError + ENDIF + RETURN __lvResult + ENDIF + __llArrayCode=(TYPE("__tcCode[1]")=="C") + IF __llArrayCode + __lnLineTotal=ACOPY(__tcCode,__laLines) + ELSE + IF VARTYPE(__tcCode)#"C" OR EMPTY(__tcCode) + RETURN + ENDIF + IF __tlFile + __lcCode="" + __lcCode=ALLTRIM(FILETOSTR(__tcCode)) + IF EMPTY(__lcCode) + RETURN + ENDIF + ELSE + __lcCode=ALLTRIM(__tcCode) + ENDIF + IF LEFT(__lcCode,1)==";" + __lcCode=STRTRAN(__lcCode,";",CR_LF) + ENDIF + __lnLineTotal=ALINES(__laLines,__lcCode) + IF __lnLineTotal=0 + RETURN + ENDIF + PRIVATE __lcLastLine + __lcLastLine="" + __lnLine=0 + DO WHILE __lnLine<__lnLineTotal + __lnLine=__lnLine+1 + __lcLine=ALLTRIM(__laLines[__lnLine]) + __lnAtPos=AT("&"+"&",__lcLine) + IF __lnAtPos>0 + __lcLine=ALLTRIM(LEFT(__lcLine,__lnAtPos-1)) + ENDIF + DO WHILE .T. + __lcChar=LEFT(__lcLine,1) + IF __lcChar==" " OR __lcChar==TAB + __lcLine=ALLTRIM(SUBSTR(__lcLine,2)) + LOOP + ENDIF + __lcChar=RIGHT(__lcLine,1) + IF __lcChar==" " OR __lcChar==TAB + __lcLine=TRIM(LEFT(__lcLine,LEN(__lcLine)-1)) + LOOP + ENDIF + EXIT + ENDDO + IF EMPTY(__lcLine) OR LEFT(__lcLine,1)=="*" OR LEFT(__lcLine,1)=="#" OR ; + LEFT(__lcLine,2)==("&"+"&") OR UPPER(LEFT(__lcLine,4))=="NOTE" OR ; + LEFT(__lcLine,4)==" + + + Adds an item to the internal list, array or single item collection. + + The list or collection has to exist or an exception is thrown. + + an instance of the item to add. + true or false + + + + Adds an item to the internal list or collection/dictionary. + + The list or collection has to exist or an exception is thrown. + + an instance of the item to add. + true or false + + + + Adds an item to the dictionary by key and value. + + **The list or collection has to exist or an exception is thrown.** + + Dictionary key used to look up this item. + an instance of the item to add. + true or false + + + + Updates a value to an existing collection or list item + by int index for lists, or a key or value for dictionaries/collections + + int 0 based index or any type for key on collections/dictionaries + + true or false + + + + Removes an item from the collection. + + Depending on the item is a List style item (Array, List, HashSet, simple Collections) + or a Key Value type collection (Dictionary or custom key value collections like StringCollection), + you specify an index (lists), value (Hash tables/collections), or a key (Dictionary). + + 0 based list index or value for a Hash table, or a key to a collection/dictionary + true or false + + + + Removes an item from the collection. + + Depending on the item is a List style item (Array, List, HashSet, simple Collections) + or a Key Value type collection (Dictionary or custom key value collections like StringCollection), + you specify an index (lists), value (Hash tables/collections), or a key (Dictionary). + + 0 based list index or value for a Hash table, or a key to a collection/dictionary + true or false + + + + Clears out the collection's content. + + + + + + Creates an instance of the collection's data member type without + actually adding it to the array. This is useful to + quickly create empty objects that can be populated in FoxPro + without specifying the full typename each time resulting in + cleaner code in FoxPro. + + **Assumes that the collection `Instance` is set or null is returned** + + Arrays must have at least 1 item, while generic lists can + deduce from the Generic Type parameters. + + Item created or null, or if no items or unable to create (or object + + + + Creates a new array instance with size number + of items pre-set. Elements are unassigned but + array is dimensioned. Use 0 for an empty array. + + Use SetItem() to assign values to each array element + + The type of the array's elements + Size of array to create + + + + + Creates an empty List of T. + + .NET Type of the items in the List + + + + + Creates an empty Dictionary with specified key value types + + .NET Typename of the Key + .NET Typename of the collection Data items + + + + + Assigns a .NET collect to this ComArray Instance. Has to be passed + as a base instance (ie. parent instance of the array) and + the name of the array because once the array hits VFP code + it's already been converted into a VFP array so only internal + reflection will allow getting the actual reference into ComArray. + + Instance of the parent object of the array + Name of the array property on the parent instance + + + + + Assigns this ComArray's array instance to the specified property + + + + + + + + Creates a copied array instance from an enumerable. + + If enumerables aren't bound to a concrete list/collection + and retrieved one at a time, there's no way to return it to + FoxPro unless it's materialized into some sort of list. + + This method makes a copy of the enumerable and allows you to + iterate over it. + + You can update existing items in the array, but you cannot + add/remove/clear items and affect the underlying enumerable. + If the type is truly Enumerated it won't support updating + either, so this is not really a restriction imposed here. + + If the underlying enumerable is a concrete list or collection + type you should be able to use the relevant Add/Remove/Clear + methods directly without requiring this method to make a copy. + + + + + + + .NET System.Guid values cannot be passed to VFP as they are non COM + exported value types. So any Guid values passed to and received from .NET + need to be passed around as a ComGuid instance. This class wraps an + internal Guid instance member and allows access to the GuidString property + via string. + + + + + The actual Guid instance that can be read by a .NET handler + + + + + String representation of the Guid. + + + + + Sets the Guid instance to a new Guid Value + + + + + Sets the Guid to Guid.Empty + + + + + Class that converts to various .NET types when passed + a FoxPro value. + + This object can then be used as an input to try and + force parameters to a specific .NET type + + + + + Internally this value is set by the various + SetXXX methods. It's of type object but + set to the appropriate .NET subtype. + + + + + Returns the value fixed up for FoxPro. + + Note: if the result would return a ComValue this call + returns the actual raw value which may fail due type + conflicts. Done to prevent needless nesting. + + + + + + Returns the name of the type in the Value structure + + + + + + Sets a Short value which is not supported + in Visual FoxPro + + + + + + Sets an Int64 value which is not supported + in Visual FoxPro + + + + + + Sets an UInt64 value which is not supported + in Visual FoxPro + + + + + + Sets an UInt64 value which is not supported + in Visual FoxPro + + + + + + Sets a Single Value on the + + + + + + Set a float value + + + + + + Sets a character value from a string or integer + + + + + + Sets a Decimal value. This can actually + be done in FoxPro with CAST(val as Currency) + + + + + + Sets a Long (64 bit) integer value + + + + + + Returns a byte value which is similar + to Int16. + + + + + + Assigns an enum value to the value structure. This + allows to pass enum values to methods and constructors + to ensure that method signatures match properly + + full type and value name. Example: System.Windows.Forms.MessageBoxOptions.OK + + + + Assigns an enum value that is based on a numeric (flag) value + or a combination of flag values. + + Enum type name (System.Windows.Forms.MessageBoxOptions) + numeric flag value to set enum to + + + + Allows setting of DbNull from FoxPro since DbNull is an inaccessible + value type for FoxPro. + + + + + Method that sets the Value property by fixing up any + values based on GetProperty() rules. This means if you pass + an ComArray the raw array will be unpacked and stored for example. + + + + + Sets the Value property from a property retrieved from .NET + Useful to transfer value in .NET that are marshalled incorrectly + in FoxPro such as Enum values (that are marshalled as numbers) + + An object reference to the base object + Name of the property + + + + Sets the value property from a static property retrieved from .NET. + Useful to transfer value in .NET that are marshalled incorrectly + in FoxPro such as Enum values (that are marshalled as numbers) + + Full type name as a string - can also be an Enum type + The static property name + + + + Sets the Value property from a method call that passes it's positional arguments + as an array. This version accepts a ComArray directly so it can be called + directly from FoxPro with a ComArray instance + + Object instance + Method to call + An array of the parameters passed (use ComArray and InvokeMethod) + + + + Sets the Value property from a method call that passes it's positional arguments + as an array. + + Object instance + Method to call + An array of the parameters passed (use ComArray and InvokeMethod) + + + + Invokes a static method with the passed parameters and sets the Value property + from the result value. + + + + + + + + Invokes a method on the System.Convert static class + to perform conversions that are supported by that object + + The Convert method name to call as a string + The Value to convert + + + + Sets the Value property from a CreateInstance call. Useful for + value types that can't be passed back to FoxPro. + + + + + + + Creates a generic type and stores it on the Value object. + + Name of the base generic type. Example: System.Collections.Generics.List + A ComArray of string type names that are the generic parameters + + + + + Sets the Value property from a CreateInstance call. Useful for + value types that can't be passed back to FoxPro. + + + + + + + Sets value to a .NET Guid. Creates a GUID from + either ComGuid instance + a string, or if null creates a new GUID. + + Pass in: String, ComGuid, ComValue (silly but for compatibility), null/DBNull + + if NULL or DbNull is passed a new ID is generated (same as NewGuid()) + + Guid as string + + + + Create a new Guid on the Value structure + + + + + Retrieves a GUID value as a string + from the Value structure + + + + + + Returns the string value of the embedded Value object + + + + + + Can be used to create an instance of wwDotnetBridge + from the .NET Core Runtime Host which requires a static method + + + + + Test method that returns an integer value of 10 for testing + + + + + diff --git a/Source/SF_RegExp/wwDotNetBridge_License.md b/Source/SF_RegExp/wwDotNetBridge_License.md new file mode 100644 index 0000000..da2708a --- /dev/null +++ b/Source/SF_RegExp/wwDotNetBridge_License.md @@ -0,0 +1,14 @@ +# wwDotnetBridge +## License +This library is licensed under **MIT license** terms: + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +© 2012-2018 Rick Strahl, West Wind Technologies + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +### NO WARRANTY +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +© 2012-2023 Rick Strahl, West Wind Technologies diff --git a/Source/SF_RegExp/wwdotnetbridge.prg b/Source/SF_RegExp/wwdotnetbridge.prg new file mode 100644 index 0000000..9ff139e --- /dev/null +++ b/Source/SF_RegExp/wwdotnetbridge.prg @@ -0,0 +1,2094 @@ +SET PROCEDURE TO wwDotnetBridge ADDITIVE + +*** This flag defines West Wind's commercial version +*** The open source version should be set to .F. +#DEFINE IS_WESTWIND .F. +#DEFINE IS_LEGACY .T. + +#IF IS_WESTWIND + #DEFINE WWC_CLR_HOSTDLL wwipstuff.dll + + *** Other dependencies + * .NET Runtime 4.0+ or .NET Core 3.1+ + + *** DLLs + * wwIpStuff.dll + * wwDotnetBridge.dll + * NewtonSoft.Json.dll - ToJson()/FromJson() only +#ELSE + #DEFINE WWC_CLR_HOSTDLL clrhost.dll + + *** Other dependencies + * .NET Runtime 4.0+ or .NET Core 3.1+ + + *** DLLs + * clrhost.dll + * wwDotnetBridge.dll +#ENDIF + + +************************************************************************ +* GetwwDotNetBridge +**************************************** +*** Function: Factory class to feed a reusable and stored instance +*** of the wwDotNetBridge class. +*** Assume: Depends on wwutils.prg +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetwwDotNetBridge(lcVersion, llUseCom) +IF VARTYPE(__DOTNETBRIDGE) != "O" + IF EMPTY(lcVersion) + lcVersion = "V4" + ENDIF + + PUBLIC __DOTNETBRIDGE + __DOTNETBRIDGE = CREATEOBJECT("wwDotNetBridge",lcVersion, llUseCom) + IF VARTYPE(__DOTNETBRIDGE) # "O" + RETURN NULL + ENDIF +ENDIF +RETURN __DOTNETBRIDGE +ENDFUNC + +************************************************************************ +* InitializeDotnetVersion() +**************************************** +*** Function: Explicit method that simply creates a wwDotnetBridge +*** instance. Call this method at the beginning of your +*** app to force the .NET Runtime version that will be +*** used throughout the entire application. +*** Assume: Call this method in your application startup +*** Pass: "V4" or "V2" +*** Return: wwDotnetBridge instance +*** (you don't have to do anything with it) +************************************************************************ +FUNCTION InitializeDotnetVersion(lcVersion,llUseCom) +RETURN GetwwDotnetBridge(lcVersion,llUseCom) +ENDFUNC + + +************************************************************* +DEFINE CLASS wwDotNetBridge AS Custom +************************************************************* +*: Author: Rick Strahl +*: (c) West Wind Technologies, 2007-2016 +*:Contact: http://www.west-wind.com +*:Created: 05/10/2007 +*:Updated: 6/06/2016 +************************************************************* +#IF .F. +*:Help Documentation +*:Topic: +Class wwDotNetBridge + +*:Description: +http://www.west-wind.com/webconnection/docs?page=_24n1cfw3a.htm + +*:Example: + +*:Remarks: + +*:SeeAlso: + + +*:ENDHELP +#ENDIF + +*** Custom Properties + +*** Stock Properties +oDotNetBridge = null + +cErrorMsg = "" +lError = .f. + +oLastException = null +FUNCTION oLastException_Access() + RETURN this.oDotNetBridge.LastException +ENDFUNC + +*** Default CLR Version. Note: you can override +*** this by specify V2,V4 in the Init() of the class +cClrVersion = "v4.0.30319" +lUseCom = .F. + +lThrowOnError = .F. +FUNCTION lThrowOnError_Assign(llValue) + +THIS.lThrowOnError = llValue +IF !ISNULL(THIS.oDotnetBridge) + this.oDotNetBridge.IsThrowOnErrorEnabled = llValue +ENDIF + +ENDFUNC + +*** Don't set here: Use CREATEOBJECT("wwDotNetBridge","V4") +*cClrVersion = "v4.0.30319" + +************************************************************************ +* wwDotnetBridge :: Init +**************************************** +*** Function: Initializes the .NET runtime inside of FoxPro +*** Assume: Calls Load() to actual perform load operation +*** Pass: lcVersion - specific .NET Version or +*** simplified "V2", "V4" +*** llUseCom - if .T. loads .NET Bridge via +*** plain COM interop rather than +*** hosting .NET runtime itself. +*** If you do COM +*** Return: nothing +************************************************************************ +FUNCTION Init(lcVersion, llUseCom) + +IF !EMPTY(lcVersion) + LOCAL lcShortVer + lcShortVer = UPPER(lcVersion) + DO CASE + CASE lcShortVer == "V4" + lcVersion = "v4.0.30319" + CASE lcShortVer == "V2" + lcVersion = "v2.0.50727" + ENDCASE + + this.cClrVersion = lcVersion +ENDIF +this.lUseCom = llUseCom + +*** Fail creation if the object couldn't be created +IF ISNULL(this.Load()) + ERROR this.cErrorMsg + RETURN .F. +ENDIF + +ENDFUNC +* wwDotnetBridge :: Init + + + +************************************************************************ +* Load +**************************************** +*** Function: Creates an instance of the .NET Bridge component +*** that allows loading of content. +*** Assume: Define as LOCAL obridge as Westwind.WebConnection.wwDotNetBridge +*** Return: nothing +************************************************************************ +FUNCTION Load() +LOCAL lcError, lnSize, lnDispHandle, lcPath, lcCmd + +IF VARTYPE(this.oDotNetBridge) != "O" + this.SetClrVersion(this.cClrVersion) + + IF this.lUseCom + this.oDotNetBridge = CREATEOBJECT("Westwind.wwDotNetBridge") + ELSE + *** Remove the Zone Identifier to 'Unblock' + DECLARE INTEGER DeleteFile IN WIN32API STRING + DeleteFile(FULLPATH("wwDotNetBridge.dll") + ":Zone.Identifier") + + #IF IS_WESTWIND + DeleteFile(FULLPATH("Newtonsoft.Json.dll") + ":Zone.Identifier") + DeleteFile(FULLPATH("Markdig.dll") + ":Zone.Identifier") + DeleteFile(FULLPATH("Renci.SshNet.dll") + ":Zone.Identifier") + #ENDIF + + *** Load by filename - assumes the wwDotNetBridge.dll is in the Fox path + DECLARE Integer ClrCreateInstanceFrom IN WWC_CLR_HOSTDLL string, string, string@, integer@ + lcError = SPACE(2048) + lnSize = 0 + lnDispHandle = ClrCreateInstanceFrom(FULLPATH("wwDotNetBridge.dll"),; + "Westwind.WebConnection.wwDotNetBridge",@lcError,@lnSize) + + IF lnDispHandle < 1 + lcError = LEFT(lcError,lnSize) + + this.SetError( "Unable to load Clr Instance. " + lcError + CHR(13) +; + "Most likely wwDotnetBridge.dll is blocked or you don't have network permissions to load the assembly." + CHR(13)+; + "Search for: 'Unable to load CLR Instance' at: https://webconnection.west-wind.com/docs" ) + RETURN NULL + ENDIF + + *** Turn handle into IDispatch COM object + this.oDotNetBridge = SYS(3096, lnDispHandle) + + *** Explicitly AddRef here - otherwise weird shit happens when objects are released + SYS(3097, this.oDotNetBridge) + + IF ISNULL(this.oDotNetBridge) + this.SetError("COM Load Error: Can't access CLR COM reference.") + RETURN null + ENDIF + ENDIF + + this.oDotNetBridge.LoadAssembly("System") + this.oDotNetBridge.IsThrowOnErrorEnabled = this.lThrowOnError +ENDIF + +RETURN this.oDotNetBridge +ENDFUNC +* CreateDotNetBridge + +************************************************************************ +* SetClrVersion +**************************************** +*** Function: Sets the CLR Version that this runtime uses. Note +*** this method must be called before this.Load() is +*** called and the runtime is instantiated for the very +*** first time. +*** Pass: lcVersion - Clr version in the format of "v4.0.30319" +*** Return: nothing +************************************************************************ +PROTECTED FUNCTION SetClrVersion(lcVersion) +DECLARE Integer SetClrVersion IN WWC_CLR_HOSTDLL AS SetClrVersionApi string +SetClrVersionApi(lcVersion) +ENDFUNC +* SetClrVersion + +************************************************************************ +* Unload +**************************************** +*** Function: Unloads the CLR and AppDomain +*** Assume: Don't call this unless you want to explicity force +*** the AppDomain to be unloaded and a new one to be spun +*** up. Generally a single domain shoudl be sufficient. +*** Pass: +*** Return: +************************************************************************ +FUNCTION Unload() +IF VARTYPE(this.oDotNetBridge) == "O" + this.oDotNetBridge = NULL + DECLARE Integer ClrUnload IN WWC_CLR_HOSTDLL + ClrUnload() +ENDIF +ENDFUNC +* Unload + +FUNCTION EnableThrowOnError() +this.oDotNetBridge.IsThrowOnErrorEnabled = .T. +ENDFUNC + +************************************************************************ +* CreateInstance +**************************************** +*** Function: Creates an instance of a .NET class by full assembly +*** name or local file name. +*** Assume: Relies on wwDotNetBridgeW32.dll and wwDotNetBridge.dll +*** Pass: lcClass - MyNamespace.MyClass +*** lvParmN - Up to 5 Constructor Parameters +*** Return: Instance or NULL +************************************************************************ +FUNCTION CreateInstance(lcClass,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5) +LOCAL lnDispHandle, lnSize, loBridge, loObject, lnParmCount + +this.SetError() + +loBridge = this.oDotnetBridge +IF ISNULL(loBridge) + RETURN NULL +ENDIF + +lnParmCount = PCOUNT() +DO CASE + CASE lnParmCount = 1 + loObject = loBridge.CreateInstance(lcClass) + CASE lnParmCount = 2 + loObject = loBridge.CreateInstance_OneParm(lcClass,lvParm1) + CASE lnParmCount = 3 + loObject = loBridge.CreateInstance_TwoParms(lcClass,lvParm1, lvParm2) + CASE lnParmCount = 4 + loObject = loBridge.CreateInstance_ThreeParms(lcClass,lvParm1, lvParm2, lvParm3) + CASE lnParmCount = 5 + loObject = loBridge.CreateInstance_FourParms(lcClass,lvParm1, lvParm2, lvParm3, lvParm4) + CASE lnParmCount = 6 + loObject = loBridge.CreateInstance_FiveParms(lcClass,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5) + OTHERWISE + loObject = loBridge.CreateInstance(lcClass) +ENDCASE + +IF ISNULL(loObject) OR loBridge.Error + this.SetError( loBridge.ErrorMessage ) + RETURN NULL +ENDIF + +RETURN loObject +ENDFUNC + +************************************************************************ +* CreateInstanceOnType +**************************************** +*** Function: Creates an instance of a .NET class by full assembly +*** name or local file name. +*** Assume: Relies on wwDotNetBridgeW32.dll and wwDotNetBridge.dll +*** Pass: lcClass - MyNamespace.MyClass +*** lvParmN - Up to 5 Constructor Parameters +*** Return: Instance or NULL +************************************************************************ +FUNCTION CreateInstanceOnType(loInstance, lcProperty, lcClass,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5) +LOCAL lnDispHandle, lnSize, loBridge, loObject, lnParmCount + +this.SetError() + +loBridge = this.oDotnetBridge +IF ISNULL(loBridge) + RETURN NULL +ENDIF + +lnParmCount = PCOUNT() +DO CASE + CASE lnParmCount = 4 + loObject = loBridge.CreateInstanceOnType_OneParm(loInstance,lcProperty, lcClass,lvParm1) + CASE lnParmCount = 5 + loObject = loBridge.CreateInstanceOnType_TwoParms(loInstance,lcProperty,lcClass,lvParm1, lvParm2) + CASE lnParmCount = 6 + loObject = loBridge.CreateInstanceOnType_ThreeParms(loInstance,lcProperty,lcClass,lvParm1, lvParm2, lvParm3) + CASE lnParmCount = 7 + loObject = loBridge.CreateInstanceOnType_FourParms(loInstance,lcProperty,lcClass,lvParm1, lvParm2, lvParm3, lvParm4) + CASE lnParmCount = 8 + loObject = loBridge.CreateInstanceOnType_FiveParms(loInstance,lcProperty,lcClass,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5) + OTHERWISE + loObject = loBridge.CreateInstanceOnType(loInstance,lcProperty,lcClass) +ENDCASE + +IF ISNULL(loObject) OR loBridge.Error + this.SetError( loBridge.ErrorMessage ) + RETURN .F. +ENDIF + +RETURN .T. +ENDFUNC + + +************************************************************************ +* CreateInstanceFromFile +**************************************** +*** Function: Creates an instance of an assembly from a file on disk +*** without having to call LoadAssembly first. +*** Assume: Be careful with this as it doesn't load dependencies. +*** The safer path is to use LoadAssembly then load the type. +*** Mainly useful for loading things like addins out of diff +*** non-application folders. +*** Pass: +*** Return: object instance on success null or exception on failure +************************************************************************ +FUNCTION CreateInstanceFromFile(lcAssemblyFilename, lcTypename, lvParm1, lvParm2, lvParm3) + +this.SetError() + +loBridge = this.oDotnetBridge +IF ISNULL(loBridge) + RETURN NULL +ENDIF + +lcAssemblyFileName = FULLPATH(lcAssemblyFileName) + +lnParmCount = PCOUNT() +DO CASE + CASE lnParmCount = 3 + loObject = loBridge.CreateAssemblyInstanceFromFile_OneParm(lcAssemblyFilename, lcTypename, lvParm1) + CASE lnParmCount = 4 + loObject = loBridge.CreateAssemblyInstanceFromFile_TwoParms(lcAssemblyFilename, lcTypename, lvParm1, lvParm2) + CASE lnParmCount = 5 + loObject = loBridge.CreateAssemblyInstanceFromFile_ThreeParms(lcAssemblyFilename, lcTypename, lvParm1, lvParm2, lvParm3) + OTHERWISE + loObject = loBridge.CreateAssemblyInstanceFromFile(lcAssemblyFilename, lcTypename) +ENDCASE + +RETURN loObject +ENDFUNC +* CreateInstanceFromFile + + +************************************************************************ +* InvokeMethod +**************************************** +*** Function: Invokes an instance method on an object +*** Assume: Use when direct COM access doesn't work for things like collections/generics etc. +*** Pass: +*** Return: +************************************************************************ +FUNCTION InvokeMethod(loObject, lcMethod, lvParm1, lvParm2, lvParm3, lvParm4, lvParm5,; + lvParm6, lvParm7, lvParm8, lvParm9, lvParm10,; + lvParm11, lvParm12, lvParm13, lvParm14, lvParm15,; + lvParm16, lvParm17, lvParm18, lvParm19, lvParm20,; + lvParm21, lvParm22, lvParm23, lvParm24) +LOCAL loBridge, lnParms, loResult + +this.SetError() + +loBridge = this.oDotNetBridge + +lnParms = PCOUNT() +loResult = NULL +DO CASE + CASE lnParms = 2 + loResult = loBridge.InvokeMethod(loObject, lcMethod) + CASE lnParms = 3 + loResult = loBridge.InvokeMethod_OneParm(loObject, lcMethod, lvParm1) + CASE lnParms = 4 + loResult = loBridge.InvokeMethod_TwoParms(loObject, lcMethod,lvParm1, lvParm2) + CASE lnParms = 5 + loResult = loBridge.InvokeMethod_ThreeParms(loObject, lcMethod,lvParm1, lvParm2, lvParm3) + CASE lnParms = 6 + loResult = loBridge.InvokeMethod_FourParms(loObject, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4) + CASE lnParms = 7 + loResult = loBridge.InvokeMethod_FiveParms(loObject, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5) + CASE lnParms = 8 + loResult = loBridge.InvokeMethod_SixParms(loObject, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6) + CASE lnParms = 9 + loResult = loBridge.InvokeMethod_SevenParms(loObject, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7) + CASE lnParms = 10 + loResult = loBridge.InvokeMethod_EightParms(loObject, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8) + CASE lnParms = 11 + loResult = loBridge.InvokeMethod_NineParms(loObject, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9) + CASE lnParms = 12 + loResult = loBridge.InvokeMethod_TenParms(loObject, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9, lvParm10) + + OTHERWISE + LOCAL loArray as Westwind.WebConnection.ComArray + loArray = this.CreateArray("System.Object") + + LOCAL lvParm + FOR lnX = 1 TO lnParms-2 + lvParm = EVALUATE("lvParm" + TRANSFORM(lnX)) + loArray.AddItem(lvParm) + ENDFOR + + RETURN THIS.InvokeMethod_ParameterArray(loObject, lcMethod, loArray) +ENDCASE + +IF loBridge.Error + this.cErrorMsg = loBridge.ErrorMessage + this.lError = .T. +ENDIF + +RETURN loResult +ENDFUNC +* InvokeMethod + + +************************************************************************ +* InvokeMethod_ParameterArray +**************************************** +*** Function: Invokes an instance method on an object +*** Assume: Use when direct COM access doesn't work for things like collections/generics etc. +*** Pass: +*** Return: +************************************************************************ +FUNCTION InvokeMethod_ParameterArray +LPARAMETERS loObject, lcMethod, laParms +LOCAL loBridge, loResult, lnX + +IF .F. + LOCAL ARRAY laParms[1] && Compiler needs this or compile error +ENDIF + +this.SetError() + +LOCAL loBridge as Westwind.wwDotNetBridge +loBridge = this.oDotNetBridge + +LOCAL loArray as Westwind.WebConnection.ComArray +loArray = this.CreateArray("System.Object") + +DO CASE + CASE TYPE("laParms.Instance") # "U" + *** It's already a parameter array + loArray = laParms + CASE TYPE("ALEN(laParms)") = "N" + *** It's a Fox array + lnsize = ALEN(laParms) + FOR lnX = 1 TO lnSize + loArray.AddItem(laParms[lnX]) + ENDFOR + CASE TYPE("laParms.Count") = "N" + *** It's a collection + FOR lnX=1 TO laParms.Count + loArray.AddItem(laParms[lnX]) + ENDFOR +ENDCASE + +loResult = loBridge.InvokeMethod_ParameterArray(loObject, lcMethod, loArray) + +IF loBridge.Error + this.cErrorMsg = loBridge.ErrorMessage + this.lError = .T. +ENDIF + +RETURN loResult +ENDFUNC +* InvokeMethod + +************************************************************************ +* InvokeMethodAsync +**************************************** +*** Function: Invokes a method in .NET Asynchronously on a new thread +*** Pass: loCallbackEvents - CallbackAsyncEvents object +*** Implement OnCompleted() and OnError() +*** loInstance - Instance of object to call +*** lcMethod - Method on instance to call +*** lvParm1-10 - 0 - 10 parameters +*** Return: nothing +************************************************************************ +FUNCTION InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod, lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9, lvParm10) +LOCAL lnParms + +lnParms = PCOUNT() +LOCAL loBridge as wwDotNetBridge +loBridge = this.oDotnetBridge + +DO CASE + CASE lnParms = 3 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod) + CASE lnParms = 4 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1) + CASE lnParms = 5 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1,lvParm2) + CASE lnParms = 6 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3) + CASE lnParms = 7 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4) + CASE lnParms = 8 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5) + CASE lnParms = 9 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6) + CASE lnParms = 10 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7) + CASE lnParms = 11 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8) + CASE lnParms = 12 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9) + CASE lnParms = 13 + loBridge.InvokeMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9, lvParm10) +ENDCASE + +ENDFUNC +* InvokeMethodAsync + + +************************************************************************ +* InvokeTaskMethodAsync +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod, lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9, lvParm10)) + +lnParms = PCOUNT() +LOCAL loBridge as wwDotNetBridge +loBridge = this.oDotnetBridge + +DO CASE + CASE lnParms = 3 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod) + CASE lnParms = 4 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1) + CASE lnParms = 5 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1,lvParm2) + CASE lnParms = 6 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3) + CASE lnParms = 7 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4) + CASE lnParms = 8 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5) + CASE lnParms = 9 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6) + CASE lnParms = 10 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7) + CASE lnParms = 11 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8) + CASE lnParms = 12 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9) + CASE lnParms = 13 + loBridge.InvokeTaskMethodAsync(loCallbackEvents,loInstance,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9, lvParm10) +ENDCASE + +ENDFUNC +* InvokeTaskMethodAsync + + +************************************************************************ +* InvokeMethodAsync +**************************************** +*** Function: Invokes a static method in .NET Asynchronously on a new thread +*** Pass: loCallbackEvents - CallbackAsyncEvents object +*** Implement OnCompleted() and OnError() +*** lcTypeName - .NET Type on which static method lives +*** lcMethod - Method on instance to call +*** lvParm1-10 - 0 - 10 parameters +*** Return: nothing +************************************************************************ +FUNCTION InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod, lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9, lvParm10) +LOCAL lnParms, loBridge as wwDotNetBridge +lnParms = PCOUNT() + +loBridge = this.oDotnetBridge + +DO CASE + CASE lnParms = 3 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod) + CASE lnParms = 4 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1) + CASE lnParms = 5 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1,lvParm2) + CASE lnParms = 6 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1, lvParm2, lvParm3) + CASE lnParms = 7 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4) + CASE lnParms = 8 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5) + CASE lnParms = 9 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6) + CASE lnParms = 10 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7) + CASE lnParms = 11 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8) + CASE lnParms = 12 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9) + CASE lnParms = 13 + loBridge.InvokeStaticMethodAsync(loCallbackEvents,lcTypeName,lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5, lvParm6, lvParm7, lvParm8, lvParm9, lvParm10) +ENDCASE + +ENDFUNC +* InvokeMethodAsync + + + +************************************************************************ +* GetProperty +**************************************** +*** Function: Gets a property from a .NET object +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetProperty(loInstance,lcProperty) +RETURN this.oDotNetBridge.GetProperty(loInstance, lcProperty) +ENDFUNC +* GetProperty + +************************************************************************ +* GetIndexedProperty +**************************************** +*** Function: Returns a value from an indexed property of an array +*** or a list. +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetIndexedProperty(loInstance, lnIndex) +RETURN this.oDotnetBridge.GetIndexedProperty(loInstance,lnIndex) +ENDFUNC +* GetIndexedProperty + + +************************************************************************ +* GetDictionaryItem +**************************************** +*** Function: Retrieves an item from an IDictionary instance +*** Assume: +*** Pass: loDictionary +*** lcKey +*** Return: Value for the key or an exception if value doesn't exist +************************************************************************ +FUNCTION GetDictionaryItem(loDictionary, lcKey) +RETURN this.oDotnetBridge.GetDictionaryItem(loDictionary, lcKey) +ENDFUNC +* GetDictionaryItem + + + +************************************************************************ +* SetProperty +**************************************** +*** Function: Sets a property on a .NET object +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION SetProperty(loInstance, lcProperty, lvValue) +this.oDotNetBridge.SetProperty(loInstance, lcProperty, lvValue) +ENDFUNC +* SetProperty + + +************************************************************************ +* InvokeStaticMethod +**************************************** +*** Function: Calls a static .NET method with up to 5 parameters +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION InvokeStaticMethod(lcTypeName, lcMethod, lvParm1, lvParm2, lvParm3, lvParm4, lvParm5,; + lvParm6, lvParm7, lvParm8, lvParm9, lvParm10) +LOCAL loBridge, lnParms, loResult + +this.SetError() + +loBridge = this.oDotNetBridge + +lnParms = PCOUNT() +loResult = NULL +DO CASE + CASE lnParms = 3 + loResult = loBridge.InvokeStaticMethod_OneParm(lcTypeName, lcMethod, lvParm1) + CASE lnParms = 4 + loResult = loBridge.InvokeStaticMethod_TwoParms(lcTypeName, lcMethod,lvParm1, lvParm2) + CASE lnParms = 5 + loResult = loBridge.InvokeStaticMethod_ThreeParms(lcTypeName, lcMethod,lvParm1, lvParm2, lvParm3) + CASE lnParms = 6 + loResult = loBridge.InvokeStaticMethod_FourParms(lcTypeName, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4) + CASE lnParms = 7 + loResult = loBridge.InvokeStaticMethod_FiveParms(lcTypeName, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5) + CASE lnParms = 8 + loResult = loBridge.InvokeStaticMethod_SixParms(lcTypeName, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5,lvParm6) + CASE lnParms = 9 + loResult = loBridge.InvokeStaticMethod_SevenParms(lcTypeName, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5,lvParm6, lvParm7) + CASE lnParms = 10 + loResult = loBridge.InvokeStaticMethod_EightParms(lcTypeName, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5,lvParm6, lvParm7, lvParm8) + CASE lnParms = 11 + loResult = loBridge.InvokeStaticMethod_NineParms(lcTypeName, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5,lvParm6, lvParm7, lvParm8, lvParm9) + CASE lnParms = 12 + loResult = loBridge.InvokeStaticMethod_TenParms(lcTypeName, lcMethod,lvParm1, lvParm2, lvParm3, lvParm4, lvParm5,lvParm6, lvParm7, lvParm8, lvParm9, lvParm10) + + OTHERWISE + + loResult = loBridge.InvokeStaticMethod(lcTypeName, lcMethod) +ENDCASE + +IF loBridge.Error + this.cErrorMsg = loBridge.ErrorMessage + this.lError = .T. +ENDIF + +RETURN loResult +ENDFUNC +* InvokeStaticMethod + +************************************************************************ +* GetStaticProperty +**************************************** +*** Function: Retrieves a static property value from a type +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetStaticProperty(lcType, lcProperty) +LOCAL loBridge, lvResult + +this.SetError() + +loBridge = this.oDotNetBridge + +lvResult = loBridge.GetStaticProperty(lcType, lcProperty) + +IF loBridge.Error + this.SetError(loBridge.ErrorMessage) + RETURN NULL +ENDIF + +RETURN lvResult +ENDFUNC +* GetStaticProperty + + +************************************************************************ +* GetEnumValue +**************************************** +*** Function: Retrieves an Enum value as a number from a string representation +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetEnumValue(lcType, lcProperty) + +IF !EMPTY(lcProperty) + RETURN this.GetStaticProperty(lcType, lcProperty) +ENDIF + +*** Assume we're passing the type and enum name as one string +lnAt = RAT(".",lcType) +IF lnAt < 1 + RETURN NULL +ENDIF + +lcProperty = SUBSTR(lcType,lnAt+1) +lcType = SUBSTR(lcType,1,lnAt-1) + +RETURN this.GetStaticProperty(lcType, lcProperty) +ENDFUNC +* GetEnumValue + + +************************************************************************ +* wwDotnetBridge :: GetEnumString +**************************************** +*** Function: Retrieves the enum field name from an enum value +*** Assume: +*** Pass: lvEnumValue - The Enum value to retrieve string for +*** Return: +************************************************************************ +FUNCTION GetEnumString(lcEnumTypeName,lvEnumValue) +LOCAL lcValue + +lcValue = THIS.oDotNetBridge.GetEnumString(lcEnumTypeName,lvEnumValue) +IF ISNULL(lcValue) + this.SetError(this.oDotNetBridge.ErrorMessage) + RETURN NULL +ENDIF + +RETURN lcValue +ENDFUNC +* wwDotnetBridge :: GetEnumString + +************************************************************************ +* SetStaticProperty +**************************************** +*** Function: Sets a static property value on a .NET type +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION SetStaticProperty(lcType,lcProperty,lcValue) +LOCAL loBridge, lvResult + +loBridge = this.oDotNetBridge + +IF !loBridge.SetStaticProperty(lcType, lcProperty, lcValue) + this.SetError(loBridge.ErrorMessage) + RETURN .F. +ENDIF + +RETURN .T. +ENDFUNC +* SetStaticProperty + + + +************************************************************************ +* CreateArray +**************************************** +*** Function: Creates an array of a given type and size on the specified +*** object instance. +*** Assume: +*** Pass: +*** Return: ComArray object with Instance,Length properties or null +************************************************************************ +FUNCTION CreateArray(lvArrayInstanceOrElementTypeString) +LOCAL loComArray, lcType + +lcType = VARTYPE(lvArrayInstanceOrElementTypeString) +DO CASE + CASE lcType = "X" OR EMPTY(lvArrayInstanceOrElementTypeString) + loComArray = this.oDotnetBridge.CreateInstance("Westwind.WebConnection.ComArray") + CASE lcType = "C" + loComArray = this.oDotnetBridge.CreateArray(lvArrayInstanceOrElementTypeString) + CASE lcType = "O" + loComArray = this.oDotnetBridge.CreateArrayFromInstance(lvArrayInstanceOrElementTypeString) + OTHERWISE + ERROR "Invalid parameter passed to CreateArray" +ENDCASE + +IF ISNULL(loComArray) + THIS.SetError(this.oDotnetBridge.ErrorMessage) + RETURN null +ENDIF + +RETURN loComArray +ENDFUNC +* CreateArray + +************************************************************************ +* CreateComValue +**************************************** +*** Function: Creates a COM Value structure +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION CreateComValue(lvValue) +LOCAL loVal +loVal = this.CreateInstance("Westwind.WebConnection.ComValue") + +if(PCOUNT()=1) + loVal.SetValue(lvValue) +ENDIF +RETURN loVal +ENDFUNC +* CreateComValue + + +************************************************************************ +* CreateArrayOnInstnace +**************************************** +*** Function: Creates an array of a given type and size on the specified +*** object instance. +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION CreateArrayOnInstance(loBaseType, lcType, lnSize) + +IF VARTYPE(lnSize) # "N" + IF !this.oDotNetBridge.CreateArrayOnInstanceWithObject(loBaseType, lcType, lnSize) + THIS.SetError(this.oDotnetBridge.ErrorMessage) + RETURN .F. + ENDIF + RETURN .T. +ENDIF + +IF !this.oDotNetBridge.CreateArrayOnInstance(loBaseType, lcType, lnSize) + THIS.SetError(this.oDotnetBridge.ErrorMessage) + RETURN .F. +ENDIF + +RETURN .T. +ENDFUNC +* CreateArray + +************************************************************************ +* AddArrayItem +**************************************** +*** Function: Creates an item for an array and adds it to the array +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION AddArrayItem(loBaseType, lcArrayProperty, loValue) + +IF !this.oDotNetBridge.AddArrayItem(loBaseType, lcArrayProperty,loValue) + this.SetError("Couldn't add item to array: " + this.oDotNetBridge.ErrorMessage) + RETURN .F. +ENDIF + +RETURN .T. +ENDFUNC +* AddArrayItem + +************************************************************************ +* GetArrayItem +**************************************** +*** Function: Returns an individual array item. +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetArrayItem(loBaseType, lcArrayProperty, lnIndex) +RETURN this.oDotNetBridge.GetArrayItem(loBaseType, lcArrayProperty,lnIndex) +ENDFUNC +* GetArrayItem + +************************************************************************ +* SetArrayItem +**************************************** +*** Function: Sets an individual array item. +*** Assume: The array item must exist - ie. array is big enough +*** Pass: +*** Return: +************************************************************************ +FUNCTION SetArrayItem(loBaseType, lcArrayProperty, lnIndex, lvValue) +RETURN this.oDotNetBridge.SetArrayItem(loBaseType, lcArrayProperty,lnIndex,lvValue) +ENDFUNC +* SetArrayItem + + + +************************************************************************ +* RemoveArrayItem +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION RemoveArrayItem(loBaseType, lcArrayProperty, lnIndex) + +IF !this.oDotNetBridge.RemoveArrayItem(loBaseType,lcArrayProperty, lnIndex) + this.SetError("Couldn't remove item from array: " + this.oDotnetBridge.ErrorMessage) + RETURN .F. +ENDIF + +RETURN .T. +ENDFUNC +* RemoveArrayItem + + +************************************************************************ +* GetType +**************************************** +*** Function: Returns a .NET type reference to the value passed +*** Assume: Note this explicit method is required in order +*** to call GetType() +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetType(lvValue) +RETURN this.InvokeMethod(this.oDotnetBridge,"GetType",lvValue) +ENDFUNC +* GetType + + +************************************************************************ +* GetTypeName +**************************************** +*** Function: Returns a typename for an instance +*** Assume: Shortcut for InvokeMethod(instance,"ToString") +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetTypeName(lvValue) +loType = THIS.GetType(lvValue) +RETURN this.InvokeMethod(loType,"ToString") +ENDFUNC +* GetTypeName + +************************************************************************ +* GetTypeFromName +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetTypeFromName(lcTypeName) +RETURN this.InvokeMethod(this.oDotNetBridge,"GetTypeFromName",lcTypeName) +ENDFUNC +* GetTypeFromName + + +************************************************************************ +* SubscribeToEvents +**************************************** +*** Function: Handles all events of a source object for subsequent retrieval by calling WaitForEvent. +*** loSource: The object for which to subscribe to events. +*** loHandler: An object with a method OnEvent(loEventName, loParams). +*** lcPrefix: The initial part of the event handler function for each event. Defaults to "On". +*** Return: A subscription object. The subscription ends when this object goes out of scope. +************************************************************************ +FUNCTION SubscribeToEvents(loSource, loHandler, lcPrefix) +IF EMPTY(lcPrefix) + lcPrefix = "On" +ENDIF +LOCAL loSubscription +loSubscription = CREATEOBJECT("EventSubscription") +loSubscription.Setup(this, loSource, loHandler, lcPrefix) +RETURN loSubscription +ENDFUNC +* SubscribeToEvents + + +************************************************************************ +* DataSetToXmlAdapter +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION DataSetToXmlAdapter(loDs) +LOCAL lcXML + +lcXML = this.InvokeMethod(this.oDotNetBridge,"DataSetToXmlString",loDs,.T.) + +IF EMPTY(lcXml) + RETURN null +ENDIF + +LOCAL loAdapter as XMLAdapter +loAdapter = CREATEOBJECT("XmlAdapter") +loAdapter.LoadXML(lcXml,.F.,.T.) + +RETURN loAdapter +ENDFUNC +* DataSetToXmlString + +************************************************************************ +* DataSetToCursors +**************************************** +*** Function: Converts a .NET DataSet to cursors that match the +*** tables in the Tables collection. +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION DataSetToCursors(loDs) + +loAdapter = this.DataSetToXmlAdapter(loDs) +IF ISNULL(loAdapter) + RETURN .F. +ENDIF + +RETURN this.XmlAdapterToCursors(loAdapter) +ENDFUNC +* DataSetToCursors + + +************************************************************************ +* XmlStringToDataSet +**************************************** +*** Function: Converts an XML String created with XmlAdapter or +*** CursorToXml into a DataSet +*** Assume: +*** Pass: lcXml - Xml string +*** Return: .NET DataSet object or NULL +************************************************************************ +FUNCTION XmlStringToDataSet(lcXml) +LOCAL loDataSet + +loDataSet = this.oDotNetBridge.XmlStringToDataSet(lcXml) + +IF ISNULL(loDataSet) + this.SetError(this.oDotNetBridge.ErrorMessage) + RETURN null +ENDIF + +RETURN loDataSet +ENDFUNC +* XmlStringToDataSet + +************************************************************************ +* CursorToDataSet +**************************************** +*** Function: +*** Assume: +*** Pass: lcAliasList - A list of comma delimited cursors to add to +*** the data +*** Return: DataSet or NULL +************************************************************************ +FUNCTION CursorToDataSet(lcAliasList) +LOCAL lnX, lcXml + +IF EMPTY(lcAliasList) + RETURN null +ENDIF + +LOCAL loAdapter as XMLAdapter +loAdapter = CREATEOBJECT("XmlAdapter") + +LOCAL ARRAY laCursors[1] +#IF VERSION(5) > 800 + lnCount = ALINES(laCursors,lcAliasList,1 + 4,",") +#ELSE + lnCount = ALINES(laCursors,lcAliasList,",") +#ENDIF + +FOR lnX = 1 TO lnCount + loAdapter.AddTableSchema(laCursors[lnX],.T.) +ENDFOR + +lcXml = "" +loAdapter.ToXML("lcXml") + +IF EMPTY(lcXml) + RETURN null +ENDIF + +RETURN THIS.XmlStringToDataSet(lcXml) +ENDFUNC +* CursorToDataSet + +************************************************************************ +* XmlAdapterToCursors +**************************************** +*** Function: Opens all tables in an XmlAdapter as Cursors +*** Assume: +*** Pass: +*** Return: .T. or .F. +************************************************************************ +FUNCTION XmlAdapterToCursors(loAdapter) + +IF VARTYPE(loAdapter) # "O" + this.SetError("No Adapter passed") + RETURN .F. +ENDIF +IF loAdapter.Tables.Count < 1 + THIS.SetError("No tables on XmlAdapter") + RETURN .F. +ENDIF +FOR EACH loTable IN loAdapter.Tables + USE IN SELECT(loTable.Alias) + loTable.ToCursor(.F.,loTable.Alias) +ENDFOR + +RETURN .T. +ENDFUNC +* XmlAdapterToTables + +************************************************************************ +* XmlAdapterGetCursor +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION XmlAdapterGetCursor(loAdapter,lvCursor) +LOCAL loTable, loTbl + +IF EMPTY(lvCursor) + *** Get the first cursor if no cursor name is passed + IF loAdapter.Tables.Count > 0 + lvCursor = loAdapter.Tables[1].Alias + ELSE + RETURN .F. + ENDIF +ENDIF + +loTable = null + +IF VARTYPE(lvCursor) = "N" + loTable = loAdapter.tables[lvCursor] +ELSE + lvCursor = LOWER(lvCursor) + FOR EACH loTbl in loAdapter.Tables + IF lvCursor == LOWER(loTbl.alias) + loTable = loTbl + EXIT + ENDIF + ENDFOR +ENDIF + +IF ISNULL(loTable) + RETURN .F. +ENDIF + +USE IN SELECT(loTable.Alias) + +loTable.ToCursor(.f.,loTable.Alias) +RETURN .T. +ENDFUNC +* XmlAdapterGetCursor + + +************************************************************************ +* LoadAssembly +**************************************** +*** Function: Loads an assembly either by full assembly name or by +*** fully qualified path. +*** Assume: +*** Pass: AssemblyName or full assembly file name +*** Return: .T. or .F. +************************************************************************ +FUNCTION LoadAssembly(lcAssembly) +LOCAL loBridge + +this.SetError() + +loBridge = this.Load() + +IF ISNULL(loBridge) + RETURN NULL +ENDIF + +IF FILE(lcAssembly) + lcAssembly = LOWER(FULLPATH(lcAssembly)) +ENDIF + +IF AT(":\",lcAssembly) > 0 OR AT("\\",lcAssembly) > 0 + *** It's a file based assembly path + IF !loBridge.LoadAssemblyFrom(lcAssembly) + this.SetError(lobridge.ErrorMessage) + RETURN .F. + ENDIF +ELSE + *** It's an assembly name + IF !loBridge.LoadAssembly(lcAssembly) + this.SetError(lobridge.ErrorMessage) + RETURN .F. + ENDIF +ENDIF + +RETURN .T. +ENDFUNC +* LoadAssembly + +************************************************************************ +* wwDotNetBridge :: RunThread +**************************************** +*** Function: Runs a PRG file on a separate thread +*** Assume: +*** Pass: loEvents - Any Fox object that can be called +*** from within the PRG +*** Return: Instance of the ThreadRunner .NET object +************************************************************************ +FUNCTION RunThread(lcPrgFileName, loEvents) +LOCAL loThread +loThread = THIS.CreateInstance("Westwind.WebConnection.ThreadRunner") +loThread.RunThread(loEvents,FULLPATH(lcPrgFileName)) +RETURN loThread +ENDFUNC +* wwDotNetBridge :: ExecutePrgOnThread + +*!* ************************************************************************ +*!* * CreateClrInstanceFrom +*!* **************************************** +*!* *** Function: Creates an instance of a .NET class by referencing +*!* *** a fully qualified assembly path. +*!* *** Pass: lcLibrary - fully qualified path to the assembly +*!* *** including extension +*!* *** lcClass - MyNamespace.MyClass +*!* *** Return: Instance or NULL +*!* ************************************************************************ +*!* FUNCTION CreateClrInstance(lcLibrary,lcClass,lcError) +*!* LOCAL lnDispHandle, lnSize + +*!* DECLARE Integer ClrCreateInstance IN WWC_CLR_HOSTDLL string, string, string@, integer@ + +*!* lcError = SPACE(2048) +*!* lnSize = 0 +*!* lnDispHandle = ClrCreateInstance("wcDotNetBridge","Westwind.WebConnection.wwDotNetBridge",@lcError,@lnSize) + +*!* IF lnDispHandle < 1 +*!* lcError = LEFT(lcError,lnSize) +*!* RETURN NULL +*!* ENDIF + +*!* RETURN SYS(3096, lnDispHandle) +*!* ENDFUNC + + +************************************************************************ +* ConvertToDotnetValue +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION ConvertToDotnetValue(lvFoxValue,lcType) + +lcType = LOWER(lcType) + +*** Only create loVal object on types that need conversion +IF EMPTY(lcType) OR INLIST(lcType,"int16","int64","byte","dbnull") + LOCAL loVal as Westwind.WebConnnection.ComValue + loVal = this.CreateInstance("Westwind.WebConnection.ComValue") +ENDIF + +IF EMPTY(lcType) + RETURN loVal +ENDIF + + +DO CASE + *** ComValue object conversions + CASE lcType = "int16" + loVal.SetInt16(lvFoxValue) + CASE lcType = "int64" + loVal.SetInt64(lvFoxValue) + CASE lcType = "byte" + loVal.SetByte(lvFoxValue) + CASE lcType = "char" + loVal.SetChar(lvFoxValue) + CASE lcType = "dbnull" + loVal.SetDbNull() + + *** CAST Conversions + CASE lcType = "decimal" + RETURN NTOM(lvFoxValue) + *CAST(lvFoxValue as Currency) + CASE lcType = "binary" OR lcType = "byte[]" + #IF VERSION(5) > 800 + RETURN CAST(lvFoxValue as BLOB) + #ELSE + RETURN CREATEBINARY(lvFoxValue) + #ENDIF + OTHERWISE + *** If no conversion exists just return the value as is + RETURN lvFoxValue +ENDCASE + +RETURN loVal +ENDFUNC +* ConvertToDotNetValue + + +************************************************************************ +* FixComErrorMessage +**************************************** +*** Function: Strips off the OLE Dispatch Error prefix from COM +*** error messages if present. +*** Assume: +*** Pass: Full error +*** Return: Error without the OLE dispatch prefix +************************************************************************ +FUNCTION FixComErrorMessage(lcMsg) +LOCAL lnAt + +IF EMPTY(lcMsg) + RETURN lcMsg +ENDIF + +IF SUBSTR(lcMsg,1,3) != "OLE" + RETURN lcMsg +ENDIF + +lnAt = AT(": ",lcMsg) +RETURN SUBSTR(lcMsg,lnAt + 2) +ENDFUNC +* FixComErrorMessage + + +************************************************************************ +* GetDotNetVersion +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetDotNetVersion() +RETURN this.oDotNetBridge.GetVersionInfo() +ENDFUNC +* GetDotNetVersion + +************************************************************************ +* SetError +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION SetError(lcMessage) + +IF EMPTY(lcMessage) + this.lError = .f. + this.cErrorMsg = "" + RETURN +ENDIF + +this.lError = .t. +this.cErrorMsg = lcMessage + +ENDFUNC +* SetError + +************************************************************************ +* ToString +**************************************** +*** Function: Returns the result from the ToString() method reliably. +*** even for types that FoxPro natively would fail on via COM +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION ToString(loDotnetObject) +RETURN THIS.InvokeMethod(loDotnetObject,"ToString") +ENDFUNC +* ToString + +#IF IS_WESTWIND + +************************************************************************ +* ToJson +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION ToJson(loDotnetObject, llFormatted) + +lcResult = this.oDotnetBridge.ToJson(loDotnetObject,llFormatted) +IF ISNULL(lcResult) + THIS.SetError( this.oDotnetBridge.ErrorMessage) +ENDIF + +RETURN lcResult +ENDFUNC +* ToJson + + +************************************************************************ +* FromJson +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION FromJson(lcJson,lvType) + +loType = lvType +IF VARTYPE(lvType) = "C" + loType = this.GetTypeFromName(lvType) +ENDIF + +lcResult = this.oDotnetBridge.FromJson(lcJson,loType) +IF ISNULL(lcResult) + this.SetError(this.oDotnetBridge.ErrorMessage) + RETURN NULL +ENDIF + +RETURN lcResult +ENDFUNC +* FromJson + +************************************************************************ +* ToXml +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION ToXml(loDotnetObject, llFormatted) + +lcResult = this.oDotnetBridge.ToXml(loDotnetObject) +IF ISNULL(lcResult) + THIS.SetError( this.oDotnetBridge.ErrorMessage) +ENDIF + +RETURN lcResult +ENDFUNC +* ToXml + +************************************************************************ +* FromXml +**************************************** +*** Function: +*** Assume: +*** Pass: lcXml - Xml string +*** lvType - .NET type as string or .NET type object +*** Return: +************************************************************************ +FUNCTION FromXml(lcXml,lvType) + +loType = lvType +IF VARTYPE(lvType) = "C" + loType = this.GetTypeFromName(lvType) +ENDIF + +lcResult = this.oDotnetBridge.FromXml(lcXml,loType) + +IF ISNULL(lcResult) + this.SetError(this.oDotnetBridge.ErrorMessage) + RETURN NULL +ENDIF + +RETURN lcResult +ENDFUNC +* FromXml + +#ENDIF + +#IF IS_LEGACY +************************************************************************ +* GetPropertyEx +**************************************** +*** Function: Gets a property from a .NET object using .syntax for +*** for the property as well as supporting arrays +*** Assume: OBSOLETE - just use +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetPropertyEx(loInstance,lcProperty) +RETURN this.oDotNetBridge.GetPropertyEx(loInstance, lcProperty) +ENDFUNC +* GetPropertyEx + +************************************************************************ +* SetPropertyEx +**************************************** +*** Function: Sets a property on a .NET object +*** Assume: OBSOLETE - Just use GetProperty() +*** Pass: +*** Return: +************************************************************************ +FUNCTION SetPropertyEx(loInstance, lcProperty, lvValue) +this.oDotNetBridge.SetPropertyEx(loInstance, lcProperty, lvValue) +ENDFUNC +* SetProperty +#ENDIF + + +ENDDEFINE +*EOC wwDotNetBridge + + +************************************************************* +DEFINE CLASS AsyncCallbackEvents AS Custom +************************************************************* +*: Author: Rick Strahl +*: (c) West Wind Technologies, 2015 +*:Contact: http://www.west-wind.com +*:Created: 12/23/2015 +************************************************************* +#IF .F. +*:Help Documentation +*:Topic: +Class AsyncCallbackEvents + +*:Description: +Create a subclass of this class and pass to InvokeMethodAsync +as a callback object. When the method call completes or fails +the OnCompleted or OnError methods are fired. + +Make sure this object stays in scope for the duration of +the async call - otherwise the callback will fail. + +*:Example: + +*:Remarks: + +*:SeeAlso: + + +*:ENDHELP +#ENDIF + + +************************************************************************ +* OnCompleted +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION OnCompleted(lvResult,lcMethod) +ENDFUNC +* OnCompleted + +************************************************************************ +* OnError +**************************************** +*** Function: +*** Assume: +*** Pass: +*** Return: +************************************************************************ +FUNCTION OnError(lcMessage, loException,lcMethod) +ENDFUNC +* OnError + +ENDDEFINE + +*EOC AsyncCallbackEvents + + + +************************************************************************ +* GetHighestDotnetVersion +**************************************** +*** Function: Returns the highest .NET version installed on the +*** local machine. +************************************************************************ +FUNCTION GetHighestDotnetVersion() +LOCAL x,lcFrameworkPath, lcVersion + +lcVersion = "" +lcFrameworkPath = SPACE(256) + +DECLARE INTEGER GetWindowsDirectory ; + IN Win32API ; + STRING @pszSysPath,; + INTEGER cchSysPath +lnsize=GetWindowsDirectory(@lcFrameworkPath,256) +if lnSize > 0 + lcFrameworkPath = SUBSTR(lcFrameworkPath,1,lnSize) + "\" +ELSE + lcFrameworkPath = TRIM(lcFrameworkPath) +ENDIF + +*** Assume .NET 4.0 +lcVersion = NULL + + *** Try to find the largest version number +lcFrameworkPath = lcFrameworkPath + "Microsoft.NET\Framework\" +lnCount = ADIR(laNetDirs,lcFrameworkPath + "v?.*.*","D") +IF lnCount < 1 + RETURN null +ENDIF + +*** Highest version comes last so go backwards through list +FOR x = lnCount TO 1 STEP -1 + lcVersion = laNetDirs[x,1] + lcTPath = ADDBS(lcFrameworkPath + lcVersion ) + IF FILE(lcTPath + "regasm.exe") + lcFrameworkPath = ADDBS(lcTPath) + EXIT + ENDIF +ENDFOR + +RETURN lcVersion +ENDFUNC +* GetHighestDotnetVersion + + +************************************************************* +DEFINE CLASS EventSubscription as AsyncCallbackEvents +************************************************************* +*: Author: Edward Brey - https://github.com/breyed +*: Usage: Used internally by SubscribeToEvents +************************************************************ +HIDDEN oBridge, oHandler, oSubscriber, oPrefix + +oBridge = null +oHandler = null +oPrefix = null +oSubscriber = null + +************************************************************************ +* Setup +**************************************** +*** Function: Sets up an event subscription. +*** Assume: +*** Pass: loBridge - dnb instance +*** loSource - Source Object fires events +*** loHandler - Target Object that handles events +*** lcPrefix - prefix for event methods +*** implemented on target (defaults to "On") +************************************************************************ +FUNCTION Setup(loBridge, loSource, loHandler, lcPrefix) +this.oBridge = loBridge +this.oHandler = loHandler +this.oPrefix = lcPrefix +this.oSubscriber = loBridge.CreateInstance("Westwind.WebConnection.EventSubscriber", loSource) +this.HandleNextEvent() +ENDFUNC + +************************************************************************ +* UnSubscribe +**************************************** +*** Function: Unsubscribes events that are currently subscribed to +************************************************************************ +FUNCTION UnSubscribe() +IF !ISNULL(THIS.oSubscriber) + this.oSubscriber.Dispose() +ENDIF +ENDFUNC + + +FUNCTION HandleNextEvent() +this.oBridge.InvokeMethodAsync(this,this.oSubscriber,"WaitForEvent") +ENDFUNC + +************************************************************************ +* OnComplete +**************************************** +*** Function: Event Proxy that forwards the event to a function +*** named On{Event} with event's parameters. +************************************************************************ +FUNCTION OnCompleted(lvResult, lcMethod) +LOCAL loParams,lParamText,lCount + +IF ISNULL(lvResult) && If the call to WaitForEvent was canceled: + RETURN +ENDIF + + +loParams=CREATEOBJECT("EMPTY") && Workaround to index into array of parameters. +lParamText = "" +IF NOT ISNULL(lvResult.Params) + lCount = 0 + FOR EACH lParam IN lvResult.Params + lCount = lCount + 1 + AddProperty(loParams,"P" + ALLTRIM(STR(lCount)),lParam) + lParamText = lParamText + ",loParams.P" + ALLTRIM(STR(lCount)) + ENDFOR +ENDIF + +IF VARTYPE(THIS.oHandler) = "O" + =EVALUATE("this.oHandler." + this.oPrefix + lvResult.Name + "("+SUBSTR(lParamText,2)+")") + this.HandleNextEvent() +ENDIF + +ENDFUNC + +ENDDEFINE +*EOC EventSubscription + + +************************************************************* +DEFINE CLASS wwDotnetCoreBridge AS wwDotnetBridge +************************************************************* +*: Author: Rick Strahl +*: (c) West Wind Technologies, 2019 +*:Contact: http://www.west-wind.com +*:Created: 06/18/2019 +************************************************************* +#IF .F. +*:Help Documentation +*:Topic: +Class wwDotnetCoreBridge + +*:Description: + +*:Example: + +*:Remarks: + +*:SeeAlso: + + +*:ENDHELP +#ENDIF + +*** Custom Properties +cRuntimeFolder = "" + + +************************************************************************ +* wwDotnetBridge :: Init +**************************************** +*** Function: Initializes the .NET runtime inside of FoxPro +*** Assume: Calls Load() to actual perform load operation +*** Pass: lcRuntimeFolder - specific .NET Version or +*** Full Runtime Path: +*** Version only: 2.2.5, 2.1.4, 3.0.1, 5.0.3 +*** Partial Version: 2.2 2.1 3.0, 5.0 +*** llUseCom - if .T. loads .NET Bridge via +*** plain COM interop rather than +*** hosting .NET runtime itself. +*** If you do COM +*** Return: nothing +************************************************************************ +FUNCTION Init(lcRuntimeFolder) + +IF !EMPTY(lcRuntimeFolder) + THIS.cRuntimeFolder = lcRuntimeFolder +ENDIF + +*** Fail creation if the object couldn't be created +IF ISNULL(this.Load()) + ERROR this.cErrorMsg + RETURN .F. +ENDIF + +ENDFUNC +* wwDotnetBridge :: Init + + +************************************************************************ +* Load +**************************************** +*** Function: Creates an instance of the .NET Bridge component +*** that allows loading of content. +*** Assume: Define as LOCAL obridge as Westwind.WebConnection.wwDotNetBridge +*** Return: nothing +************************************************************************ +FUNCTION Load() +LOCAL lcError, lnSize, lnDispHandle, lcPath, lcCmd + +IF VARTYPE(this.oDotNetBridge) != "O" + + IF this.lUseCom + this.oDotNetBridge = CREATEOBJECT("Westwind.wwDotNetBridge") + ELSE + *** Remove the Zone Identifier to 'Unblock' + DECLARE INTEGER DeleteFile IN WIN32API AS dnb_DeleteFile STRING + dnb_DeleteFile(FULLPATH("wwDotNetBridge.dll") + ":Zone.Identifier") + + #IF IS_WESTWIND + dnb_DeleteFile(FULLPATH("Newtonsoft.Json.dll") + ":Zone.Identifier") + dnb_DeleteFile(FULLPATH("Markdig.dll") + ":Zone.Identifier") + dnb_DeleteFile(FULLPATH("Renci.SshNet.dll") + ":Zone.Identifier") + #ENDIF + + LOCAL ARRAY laVersion[1] + LOCAL lnInfos, lcVersion, lcRuntimePath + lcVersion = "" && ie. 7.7.0.0 + lnInfos = AGETFILEVERSION(laVersion,FULLPATH("wwDotnetBridge.dll")) + IF (lnInfos > 3) + lcVersion = laVersion[4] + ENDIF + + lcRuntimePath = this.GetDotnetCoreRuntimeFolder(this.cRuntimeFolder) + + IF !DIRECTORY(lcRuntimePath) + this.SetError("Couldn't locate .NET Runtime: " + this.cRuntimeFolder) + RETURN NULL + ENDIF + + *** Load by filename - assumes the wwDotNetBridge.dll is in the Fox path + DECLARE Integer CoreClrCreateInstanceFrom IN WWC_CLR_HOSTDLL string, string, string@, integer@ + lcError = SPACE(2048) + lnSize = LEN(lcError) + lnDispHandle = CoreClrCreateInstanceFrom(lcRuntimePath,lcVersion,@lcError,@lnSize) + + IF lnDispHandle < 1 + lcError = LEFT(lcError,lnSize) + + this.SetError( "Unable to load Clr Instance. " + lcError + CHR(13) +; + "Most likely wwDotnetBridge.dll is blocked or you don't have network permissions to load the assembly." + CHR(13)+; + "Search for: 'Unable to load CLR Instance' at: https://webconnection.west-wind.com/docs" ) + RETURN NULL + ENDIF + + *** Turn handle into IDispatch COM object + this.oDotNetBridge = SYS(3096, lnDispHandle) + + *** Explicitly AddRef here - otherwise weird shit happens when objects are released + SYS(3097, this.oDotNetBridge) + + IF ISNULL(this.oDotNetBridge) + this.SetError("COM Load Error: Can't access CLR COM reference.") + RETURN null + ENDIF + ENDIF + + *this.oDotNetBridge.LoadAssembly("System") + this.oDotNetBridge.IsThrowOnErrorEnabled = this.lThrowOnError +ENDIF + + +RETURN this.oDotNetBridge +ENDFUNC +* Load + +************************************************************************ +* Unload +**************************************** +*** Function: Unloads the CLR and AppDomain +*** Assume: Don't call this unless you want to explicity force +*** the AppDomain to be unloaded and a new one to be spun +*** up. Generally a single domain shoudl be sufficient. +*** Pass: +*** Return: +************************************************************************ +FUNCTION Unload() +IF VARTYPE(this.oDotNetBridge) == "O" + this.oDotNetBridge = NULL + DECLARE Integer CoreClrUnload IN WWC_CLR_HOSTDLL + CoreClrUnload() +ENDIF +ENDFUNC +* Unload + +************************************************************************ +* FindDotnetCoreRuntime +**************************************** +*** Function: Finds the .NET Core Runtime Path +*** Assume: +*** Pass: lcVersion +*** Modes: +*** Full Path: C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App\2.2.5 +*** Version only: 2.2.5 +*** Partial version 2.1 or 2.2 or 3.0 +*** Return: Runtime Folder path or empty string +************************************************************************ +FUNCTION GetDotnetCoreRuntimeFolder(lcVersion) +LOCAL lcFolder, lnFolderId, lnResult, lcOutput, lcFolderName, lnX, lnIndex +LOCAL lcVersion, lnParts, lcBasePath +LOCAL laParts[1], laFolders[1,4], laVersions[1,1] + + +IF !EMPTY(lcVersion) AND DIRECTORY(lcVersion) + RETURN ADDBS(lcVersion) +ENDIF + +DECLARE INTEGER SHGetFolderPath IN Shell32.dll ; + INTEGER Hwnd, INTEGER nFolder, INTEGER Token, INTEGER Flags, STRING @cPath + +lnFolderId = 0x0026 && Program Files +lcOutput = repl(CHR(0),256) +lnResult = SHGetFolderPath(_VFP.hWnd,lnFolderId,0,0,@lcOutput) +IF lnResult = 0 + lcOutput = STRTRAN(lcOutput,CHR(0),"") + "\" +ELSE + lcOutput = "" +ENDIF + +IF EMPTY(lcVersion) + lcVersion = "" +ENDIF + +lcBasePath = ADDBS(lcOutput) + "dotnet\shared\Microsoft.NETCore.App\" + +IF !EMPTY(lcVersion) + *** Check for exact folder match + IF DIRECTORY(lcVersion) + RETURN ADDBS(lcFolder) + ENDIF + + *** Check for exact version match + IF DIRECTORY(lcBasePath + lcVersion) + RETURN lcBasePath + lcVersion + "\" + ENDIF +ENDIF + +*** We have to determine the highest matching version for partial version supplied +*** We capture folder names and pad out version parts in order to sort properly +*** then pick the highest value +lnFolders = ADIR(laFolders,lcBasePath + lcVersion + "*.*","D") +IF lnFolders < 1 + RETURN "" +ENDIF + +*** Reformat folders with left padding to 3 characters and find the largest version +DIMENSION laVersions[lnFolders,2] + +FOR lnX = 1 TO lnFolders + lcVersion = laFolders[lnX,1] + DIMENSION laParts[1] + lnParts= ALINES(laParts, lcVersion, 1, '.') + lcAdjusted = PADL(INT(VAL(laParts[1])),3,'0') + IF(lnParts > 1) + lcAdjusted = lcAdjusted + "." + PADL(INT(VAL(laParts[2])),3,'0') + ENDIF + IF(lnParts > 2) + lcAdjusted = lcAdjusted + "." + PADL(INT(VAL(laParts[3])),3,'0') + ENDIF + IF(lnParts > 3) + lcAdjusted = lcAdjusted + "." + PADL(INT(VAL(laParts[4])),3,'0') + ENDIF + laVersions[lnx, 1] = lcAdjusted + laVersions[lnx, 2] = lcVersion +ENDFOR + +ASORT(laVersions,1,ALEN(laVersions,1),1) + +lcFullVersion = laVersions[1,2] +RETURN lcBasePath + lcFullVersion + "\" +ENDFUNC + +ENDDEFINE +*EOC wwDotnetCoreBridge + + + + +************************************************************************ +* GetwwDotnetCoreBridge +**************************************** +*** Function: Factory class to feed a reusable and stored instance +*** of the wwDotNetCoreBridge class. +*** Assume: Depends on wwutils.prg +*** Pass: +*** Return: +************************************************************************ +FUNCTION GetwwDotNetCoreBridge(lcVersion) +IF VARTYPE(__DOTNETCOREBRIDGE) != "O" + IF EMPTY(lcVersion) + lcVersion = "" + ENDIF + + PUBLIC __DOTNETCOREBRIDGE + __DOTNETCOREBRIDGE = CREATEOBJECT("wwDotNetCoreBridge",lcVersion) + IF VARTYPE(__DOTNETCOREBRIDGE) # "O" + RETURN NULL + ENDIF +ENDIF +RETURN __DOTNETCOREBRIDGE +ENDFUNC + +************************************************************************ +* InitializeDotnetCoreVersion() +**************************************** +*** Function: Explicit method that simply creates a wwDotnetCoreBridge +*** instance. Call this method at the beginning of your +*** app to force the .NET Runtime version that will be +*** used throughout the entire application. +*** Assume: Call this method in your application startup +*** Pass: Optional: "5.0.1" or "" +*** Return: wwDotnetCoreBridge instance +*** (you don't have to do anything with it) +************************************************************************ +FUNCTION InitializeDotnetCoreVersion(lcVersion) +RETURN GetwwDotnetCoreBridge(lcVersion) +ENDFUNC \ No newline at end of file diff --git a/Source/Samples/GoFishBackup_Sample.prg b/Source/Samples/GoFishBackup_Sample.prg index 596e1a5..e3ed601 100644 --- a/Source/Samples/GoFishBackup_Sample.prg +++ b/Source/Samples/GoFishBackup_Sample.prg @@ -1,73 +1,73 @@ -*--------------------------------------------------------------------------------------------------- -* Sample of a GoFishBackup program. -* Note: This is the code from the BackupFile() method GoFish Search Engine. It is shown here -* as an example in case you wich to alter the way backups are handled in GoFish. -*--------------------------------------------------------------------------------------------------- - -#Define ccBACKUPFOLDER Addbs(Home(7) + 'GoFishBackups') - -Lparameters tcFilePath, tnReplaceHistoryId - -Local lcBackupPRG, llCopyError -Local laExtensions[1], lcDestFile, lcExt, lcExtensions, lcSourceFile, lcThisBackupFolder, lnI - -If This.oSearchOptions.lPreviewReplace = .t. - Return -Endif - -llCopyError = .f. - -*-- If the user has created a custom backup PRG, and placed it in their path, then call it instead -lcBackupPRG = 'GoFish_Backup.prg' - -If File(lcBackupPRG) - Do &lcBackupPRG With tcFilePath, tnReplaceHistoryId - Return -Endif - -If Not Directory (ccBACKUPFOLDER) && Create main folder for backups, if necessary - Mkdir (ccBACKUPFOLDER) -Endif - -* Create folder for this ReplaceHistorrID, if necessary -lcThisBackupFolder = Addbs (ccBACKUPFOLDER + Transform (tnReplaceHistoryId)) - -If Not Directory (lcThisBackupFolder) - Mkdir (lcThisBackupFolder) -Endif - -* Determine the extensions we need to consider -lcExt = Upper (Justext (tcFilePath)) - -Do Case - Case lcExt = 'SCX' - lcExtensions = 'SCX,SCT' - Case lcExt = 'VCX' - lcExtensions = 'VCX,VCT' - Case lcExt = 'FRX' - lcExtensions = 'FRX,FRT' - Case lcExt = 'MNX' - lcExtensions = 'MNX,MNT,MPR,MPX' - Otherwise - lcExtensions = lcExt -Endcase - -* Copy each file into the destination folder, if its not already there -Alines (laExtensions, lcExtensions, 0, ',') - -For lnI = 1 To Alen (laExtensions) - lcSourceFile = Forceext (tcFilePath, laExtensions (lnI)) - lcDestFile = lcThisBackupFolder + Justfname (lcSourceFile) - If Not File (lcDestFile) - Try - Copy File (lcSourceFile) To (lcDestFile) - Catch - If !llCopyError - This.SetReplaceError('Error creating backup of file.', tcFilePath, tnReplaceHistoryId) - Endif - llCopyError = .t. - Endtry - Endif -Endfor - +*--------------------------------------------------------------------------------------------------- +* Sample of a GoFishBackup program. +* Note: This is the code from the BackupFile() method GoFish Search Engine. It is shown here +* as an example in case you wich to alter the way backups are handled in GoFish. +*--------------------------------------------------------------------------------------------------- + +#Define ccBACKUPFOLDER Addbs(Home(7) + 'GoFishBackups') + +Lparameters tcFilePath, tnReplaceHistoryId + +Local lcBackupPRG, llCopyError +Local laExtensions[1], lcDestFile, lcExt, lcExtensions, lcSourceFile, lcThisBackupFolder, lnI + +If This.oSearchOptions.lPreviewReplace = .t. + Return +Endif + +llCopyError = .f. + +*-- If the user has created a custom backup PRG, and placed it in their path, then call it instead +lcBackupPRG = 'GoFish_Backup.prg' + +If File(lcBackupPRG) + Do &lcBackupPRG With tcFilePath, tnReplaceHistoryId + Return +Endif + +If Not Directory (ccBACKUPFOLDER) && Create main folder for backups, if necessary + Mkdir (ccBACKUPFOLDER) +Endif + +* Create folder for this ReplaceHistorrID, if necessary +lcThisBackupFolder = Addbs (ccBACKUPFOLDER + Transform (tnReplaceHistoryId)) + +If Not Directory (lcThisBackupFolder) + Mkdir (lcThisBackupFolder) +Endif + +* Determine the extensions we need to consider +lcExt = Upper (Justext (tcFilePath)) + +Do Case + Case lcExt = 'SCX' + lcExtensions = 'SCX,SCT' + Case lcExt = 'VCX' + lcExtensions = 'VCX,VCT' + Case lcExt = 'FRX' + lcExtensions = 'FRX,FRT' + Case lcExt = 'MNX' + lcExtensions = 'MNX,MNT,MPR,MPX' + Otherwise + lcExtensions = lcExt +Endcase + +* Copy each file into the destination folder, if its not already there +Alines (laExtensions, lcExtensions, 0, ',') + +For lnI = 1 To Alen (laExtensions) + lcSourceFile = Forceext (tcFilePath, laExtensions (lnI)) + lcDestFile = lcThisBackupFolder + Justfname (lcSourceFile) + If Not File (lcDestFile) + Try + Copy File (lcSourceFile) To (lcDestFile) + Catch + If !llCopyError + This.SetReplaceError('Error creating backup of file.', tcFilePath, tnReplaceHistoryId) + Endif + llCopyError = .t. + Endtry + Endif +Endfor + Return !llCopyError \ No newline at end of file diff --git a/Source/Samples/GoFish_FormatGrid_Sample.prg b/Source/Samples/GoFish_FormatGrid_Sample.prg index 838d1a8..bb6c54d 100644 --- a/Source/Samples/GoFish_FormatGrid_Sample.prg +++ b/Source/Samples/GoFish_FormatGrid_Sample.prg @@ -1,34 +1,34 @@ -*-- Sample to format GoFish grid color. Provided by Jim R. Nelson -*-- Assigns row colors based on field MatchType: -*-- Certain color for Comments, bold for Filenames and Class Names, red for Procedures, Functions, Methods, etc. - - -Lparameters toGrid, tcResultsCursor - -Local lcComments, lcCommentsColor, lcDefs, lcDefsColor, lcOthers, lcOthersColor, lcProcs -Local lcProcsColor - -lcProcs = 'Inlist(' + tcResultsCursor + '.MatchType, "", "", "")' -lcProcsColor = 'RGB(255,0,0)' - -lcDefs = 'Left(' + tcResultsCursor + '.MatchType, 2) = "<<"' -lcDefsColor = 'RGB(0,0,0)' - -lcOthers = 'Left(' + tcResultsCursor + '.MatchType, 1) = "<"' -lcOthersColor = 'RGB(0,128,0)' - -toGrid.SetAll ('DynamicForeColor', 'ICase(' + ; - lcProcs + ', ' + lcProcsColor + ', ' + ; - lcDefs + ', ' + lcDefsColor + ', ' + ; - lcOthers + ', ' + lcOthersColor + ', ' + ; - ' Rgb(0,0,0))') - -lcComments = tcResultsCursor + '.MatchType = ""' -lcCommentsColor = 'RGB(224,224,224)' - -toGrid.SetAll ('DynamicBackColor', 'ICase(' + ; - lcComments + ', ' + lcCommentsColor + ', ' + ; - ' Rgb(255,255,255))') - -toGrid.SetAll ('DynamicFontBold', 'Left(' + tcResultsCursor + '.MatchType, 2) = "<<"') - +*-- Sample to format GoFish grid color. Provided by Jim R. Nelson +*-- Assigns row colors based on field MatchType: +*-- Certain color for Comments, bold for Filenames and Class Names, red for Procedures, Functions, Methods, etc. + + +Lparameters toGrid, tcResultsCursor + +Local lcComments, lcCommentsColor, lcDefs, lcDefsColor, lcOthers, lcOthersColor, lcProcs +Local lcProcsColor + +lcProcs = 'Inlist(' + tcResultsCursor + '.MatchType, "", "", "")' +lcProcsColor = 'RGB(255,0,0)' + +lcDefs = 'Left(' + tcResultsCursor + '.MatchType, 2) = "<<"' +lcDefsColor = 'RGB(0,0,0)' + +lcOthers = 'Left(' + tcResultsCursor + '.MatchType, 1) = "<"' +lcOthersColor = 'RGB(0,128,0)' + +toGrid.SetAll ('DynamicForeColor', 'ICase(' + ; + lcProcs + ', ' + lcProcsColor + ', ' + ; + lcDefs + ', ' + lcDefsColor + ', ' + ; + lcOthers + ', ' + lcOthersColor + ', ' + ; + ' Rgb(0,0,0))') + +lcComments = tcResultsCursor + '.MatchType = ""' +lcCommentsColor = 'RGB(224,224,224)' + +toGrid.SetAll ('DynamicBackColor', 'ICase(' + ; + lcComments + ', ' + lcCommentsColor + ', ' + ; + ' Rgb(255,255,255))') + +toGrid.SetAll ('DynamicFontBold', 'Left(' + tcResultsCursor + '.MatchType, 2) = "<<"') + diff --git a/Source/Samples/gofish_formatgrid_sample.FXP b/Source/Samples/gofish_formatgrid_sample.FXP deleted file mode 100644 index 1860735..0000000 Binary files a/Source/Samples/gofish_formatgrid_sample.FXP and /dev/null differ diff --git a/Source/Samples/gofishsearchsample.FXP b/Source/Samples/gofishsearchsample.FXP deleted file mode 100644 index decb6eb..0000000 Binary files a/Source/Samples/gofishsearchsample.FXP and /dev/null differ diff --git a/Source/Samples/gofishsearchsample.prg b/Source/Samples/gofishsearchsample.prg index bf4f81e..4ee5b2e 100644 --- a/Source/Samples/gofishsearchsample.prg +++ b/Source/Samples/gofishsearchsample.prg @@ -1,123 +1,123 @@ -*------------------------------------------------------------------------------------------------------- -* See http://vfpx.codeplex.com/wikipage?title=GoFish for the lastest GoFish4 Code Search sample programs: -*------------------------------------------------------------------------------------------------------- -*-- GoFish4 Search Engine Sample Usage (Updated 2011-05-18) -* -*-- This code serves as a test suite and coding examples of how to use the GoFish Search Engine -*------------------------------------------------------------------------------------------------------- - -Local loSearchEngine as 'GoFishSearchEngine' -Local lcPath, lcProject - -*-- Change these refereces to actual files/paths to test the search engine -lcPath = 'C:\Temp\Source\' -lcProject = lcPath + 'TestProject.pjx' -lcCodeFile = lcPath + 'GoFish_PrgTest.prg' -lcFormFile = lcPath + 'Forms\About.scx' - -loSearchEngine = CreateObject('GoFishSearchEngine') -loSearchEngine.cSearchResultsAlias = 'MyCursor' - -With loSearchEngine.oSearchOptions - .cSearchExpression = 'test' - .lRegularExpression = .f. - .lMatchWholeWord = .t. - .lMatchCase = .f. - .lSearchInComments = .t. - - .lCreateResultsCursor = .t. - .lCreateResultsCollection = .t. - - .lShowErrorMessages = .f. && Will pop up MessageBox to show any errors - .lShowWaitMessages = .f. - .lShowNoMatchesMessage = .f. -EndWith - - -Clear - -*-- Sample 1 - Searching a path ----------------- - ? 'Test 1 - Searching Path: ' + lcPath - loSearchEngine.oSearchOptions.lIncludeSubdirectories = .t. - loSearchEngine.SearchInPath(lcPath) - ShowResults(loSearchEngine) - - -*-- Sample 2 - Search a project --------------------------- - ? 'Test 2 - Searching Project: ' + lcProject - loSearchEngine.oSearchOptions.lLimitToProjectFolder = .f. - loSearchEngine.SearchInProject(lcProject) - ShowResults(loSearchEngine) - -*-- Sample 3 - Search for changed objects or files in project based on TimeStamps --------------------------- - ? 'Test 3 - Searching Project with TimeStamp: ' + lcProject - With loSearchEngine.oSearchOptions - .cSearchExpression = '' - .lTimeStamp = .t. - .dTimeStampFrom = {^2011-04-01} - .dTimeStampTo = {} - EndWith - - loSearchEngine.SearchInProject(lcProject) - ShowResults(loSearchEngine) - - -*-- Sample 4 - Searching individual PRG file ------------------------- - ? 'Test 4 - Searching a PRG file: ' + lcCodeFile - loSearchEngine.PrepareForSearch() - loSearchEngine.SearchInFile(lcCodeFile) - ShowResults(loSearchEngine) - - -*-- Sample 5 - Searching individual SCX file ------------------------- - ? 'Test 5 - Searching a SCX file: ' + lcFormFile - loSearchEngine.PrepareForSearch() - loSearchEngine.SearchInFile(lcFormFile) - ShowResults(loSearchEngine) - - -*-- Sample 6 - Search a blob of text (Typcailly from a PRG, but could be any text at all) --------------------- - ? 'Test 6 - Searching a misc blob of text/code' - loRefData = CreateObject('GF_FileResult') - lcSomeCode = FileToStr(lcCodeFile) && Code Text can come from anywhere. Doesn't even have to be FoxPro Code - loSearchEngine.PrepareForSearch() - loSearchEngine.SearchInCode(lcSomeCode, loRefData) && lxYourRefData is optional. Could be a string, int, or any object you wish to be affiliated with any match that is found - ShowResults(loSearchEngine) - - - -*-- Notes -------------------------------------------------------------------------------------- - -*-- Before any given search, you can clear previous results like this, else results will be appended. -* loSearchEngine.ClearResultsCursor() -* loSearchEngine.ClearResultsCollection() - - -*------------------------------------------------------------------------------ -Procedure ShowResults - -Lparameters toSearchEngine - -lcIndent = Space(20) - - ? Space(12) + 'Error count: ' + Alltrim(Str(toSearchEngine.oErrors.Count)) - - For Each loError In toSearchEngine.oErrors - ? lcIndent + loError - Endfor - - ? Space(1) - -*-- After a search, you can read these properties: - *(you'll also have a cursor, if you set the properties accordingly.) - - - ? lcIndent + 'MatchLines:' + Str(toSearchEngine.nMatchLines) && How many lines in the code/file matches. - ? lcIndent + 'Files with matches:' + Str(toSearchEngine.nFileCount) && How many files had matches. (Doesn't apply if SearchInCode() called directly) - ? lcIndent + 'Time: ' + Alltrim(Str(toSearchEngine.nSearchTime)) + ' seconds' && How long did the search take - ? lcIndent + 'Cursor Rows: ' + Alltrim(Str(Reccount(toSearchEngine.cSearchResultsAlias))) - ? lcIndent + 'oResults Count: ' + Alltrim(Str(toSearchEngine.oResults.Count)) && A collection (if lCreateResultsCollection was set) - - ? Space(1) - +*------------------------------------------------------------------------------------------------------- +* See https://github.com/VFPX/GoFish for the lastest GoFish4 Code Search sample programs: +*------------------------------------------------------------------------------------------------------- +*-- GoFish4 Search Engine Sample Usage (Updated 2011-05-18) +* +*-- This code serves as a test suite and coding examples of how to use the GoFish Search Engine +*------------------------------------------------------------------------------------------------------- + +Local loSearchEngine as 'GoFishSearchEngine' +Local lcPath, lcProject + +*-- Change these refereces to actual files/paths to test the search engine +lcPath = 'C:\Temp\Source\' +lcProject = lcPath + 'TestProject.pjx' +lcCodeFile = lcPath + 'GoFish_PrgTest.prg' +lcFormFile = lcPath + 'Forms\About.scx' + +loSearchEngine = CreateObject('GoFishSearchEngine') +loSearchEngine.cSearchResultsAlias = 'MyCursor' + +With loSearchEngine.oSearchOptions + .cSearchExpression = 'test' + .lRegularExpression = .f. + .lMatchWholeWord = .t. + .lMatchCase = .f. + .lSearchInComments = .t. + + .lCreateResultsCursor = .t. + .lCreateResultsCollection = .t. + + .lShowErrorMessages = .f. && Will pop up MessageBox to show any errors + .lShowWaitMessages = .f. + .lShowNoMatchesMessage = .f. +EndWith + + +Clear + +*-- Sample 1 - Searching a path ----------------- + ? 'Test 1 - Searching Path: ' + lcPath + loSearchEngine.oSearchOptions.lIncludeSubdirectories = .t. + loSearchEngine.SearchInPath(lcPath) + ShowResults(loSearchEngine) + + +*-- Sample 2 - Search a project --------------------------- + ? 'Test 2 - Searching Project: ' + lcProject + loSearchEngine.oSearchOptions.lLimitToProjectFolder = .f. + loSearchEngine.SearchInProject(lcProject) + ShowResults(loSearchEngine) + +*-- Sample 3 - Search for changed objects or files in project based on TimeStamps --------------------------- + ? 'Test 3 - Searching Project with TimeStamp: ' + lcProject + With loSearchEngine.oSearchOptions + .cSearchExpression = '' + .lTimeStamp = .t. + .dTimeStampFrom = {^2011-04-01} + .dTimeStampTo = {} + EndWith + + loSearchEngine.SearchInProject(lcProject) + ShowResults(loSearchEngine) + + +*-- Sample 4 - Searching individual PRG file ------------------------- + ? 'Test 4 - Searching a PRG file: ' + lcCodeFile + loSearchEngine.PrepareForSearch() + loSearchEngine.SearchInFile(lcCodeFile) + ShowResults(loSearchEngine) + + +*-- Sample 5 - Searching individual SCX file ------------------------- + ? 'Test 5 - Searching a SCX file: ' + lcFormFile + loSearchEngine.PrepareForSearch() + loSearchEngine.SearchInFile(lcFormFile) + ShowResults(loSearchEngine) + + +*-- Sample 6 - Search a blob of text (Typcailly from a PRG, but could be any text at all) --------------------- + ? 'Test 6 - Searching a misc blob of text/code' + loRefData = CreateObject('GF_FileResult') + lcSomeCode = FileToStr(lcCodeFile) && Code Text can come from anywhere. Doesn't even have to be FoxPro Code + loSearchEngine.PrepareForSearch() + loSearchEngine.SearchInCode(lcSomeCode, loRefData) && lxYourRefData is optional. Could be a string, int, or any object you wish to be affiliated with any match that is found + ShowResults(loSearchEngine) + + + +*-- Notes -------------------------------------------------------------------------------------- + +*-- Before any given search, you can clear previous results like this, else results will be appended. +* loSearchEngine.ClearResultsCursor() +* loSearchEngine.ClearResultsCollection() + + +*------------------------------------------------------------------------------ +Procedure ShowResults + +Lparameters toSearchEngine + +lcIndent = Space(20) + + ? Space(12) + 'Error count: ' + Alltrim(Str(toSearchEngine.oErrors.Count)) + + For Each loError In toSearchEngine.oErrors + ? lcIndent + loError + Endfor + + ? Space(1) + +*-- After a search, you can read these properties: + *(you'll also have a cursor, if you set the properties accordingly.) + + + ? lcIndent + 'MatchLines:' + Str(toSearchEngine.nMatchLines) && How many lines in the code/file matches. + ? lcIndent + 'Files with matches:' + Str(toSearchEngine.nFileCount) && How many files had matches. (Doesn't apply if SearchInCode() called directly) + ? lcIndent + 'Time: ' + Alltrim(Str(toSearchEngine.nSearchTime)) + ' seconds' && How long did the search take + ? lcIndent + 'Cursor Rows: ' + Alltrim(Str(Reccount(toSearchEngine.cSearchResultsAlias))) + ? lcIndent + 'oResults Count: ' + Alltrim(Str(toSearchEngine.oResults.Count)) && A collection (if lCreateResultsCollection was set) + + ? Space(1) + \ No newline at end of file diff --git a/Source/Source.zip b/Source/Source.zip new file mode 100644 index 0000000..5adb3ba Binary files /dev/null and b/Source/Source.zip differ diff --git a/Source/Updater/Thor_Update_GoFishBeta.PRG b/Source/Updater/Thor_Update_GoFishBeta.PRG deleted file mode 100644 index 7be438a..0000000 --- a/Source/Updater/Thor_Update_GoFishBeta.PRG +++ /dev/null @@ -1,13 +0,0 @@ -Lparameters loUpdateObject - -With loUpdateObject - .AppName = 'GoFish4_Beta.APP' - .ApplicationName = 'GoFish_Beta' - .ToolName = 'Thor_Tool_GoFish4_Beta' - .VersionFileURL = 'http://foxpro.mattslay.com/GoFish4/Beta/_GoFishVersionFile.txt' - .VersionLocalFilename = 'GoFishVersionFile.txt' - .RegisterWithThor = 'Do "##InstallFolder##GoFish4_Beta.APP" with "Thor", .T.' -Endwith - -Return loUpdateObject - diff --git a/Source/VersionNumber.txt b/Source/VersionNumber.txt new file mode 100644 index 0000000..986084f --- /dev/null +++ b/Source/VersionNumber.txt @@ -0,0 +1 @@ +7.1 \ No newline at end of file diff --git a/Source/_GoFishVersionFile.txt b/Source/_GoFishVersionFile.txt deleted file mode 100644 index 70ccfc1..0000000 --- a/Source/_GoFishVersionFile.txt +++ /dev/null @@ -1,34 +0,0 @@ -Lparameters toUpdateInfo - -Text to lcNote NoShow -GoFish Change Log - -** Ver 5.0.170 ** Released 2021-03-24 -1. GoFishSearchEngine class: Fixed folder paths for cFilesToSkipFile, cReplaceDetailTable, cReplaceDetailTable. -2. Options Form-> Replace tab: Added read-only fields to show values for cReplaceDetailTable and cReplaceDetailTable. - -** Ver 5.0.169 ** Released 2021-03-24 -1. Removed matches from a Project PJX on the "Key" field (i.e. Match Type = "" in the results grid.) - -** Ver 5.0.168 ** Released 2021-03-23 -1. In the search results grid, if **Match Type** is`<<>` (i.e. matching a filename in a Project), then double-clicking on the row will now open the file with correct editor. (Contributed by Jim Nelson) -2. In the search results treeview, the results are now ordered by Class, Filename, FilePath. (Contributed by Jim Nelson) -3. GoFishSearchEngine.vcx has been converted to PRGs file. The 2 classes in the VCX are replaced by GoFishSearchEngine.prg and GoFishSearchOptions.prg. This was done to remove binaries (VCX) from the code base, in hopes of making it easier to maintain the source code in a more source control friendly style. -4. Converted GF_PEME_BaseTools.vcx to prg. - -** Ver 5.0.164 ** - Released 2021-03-19 -1. Fixed a bug in Delete feature of Search History form that could allow GF to delete (essentially) all files and folders starting at the root path of the disk. Error was reported in Issue #9 on the GitHub Issue Tracker. https://github.com/mattslay/GoFish/issues/9 -2. Added text source code files for VCX and SCX files, as generated by FoxBin2Prg. -3. Thor maintainers will need to release a new `Thor_Update_GoFish5.prg` updater to distribute this update. - - -EndText - -AddProperty(toUpdateInfo, 'AvailableVersion', 'GoFish5 - 5.0.170 - March 24, 2021 - 20210324') -AddProperty(toUpdateInfo, 'SourceFileUrl', 'http://bit.ly/GoFish5') -AddProperty(toUpdateInfo, 'LinkPrompt', 'GoFish Home Page') -AddProperty(toUpdateInfo, 'Link', 'https://github.com/mattslay/GoFish') -AddProperty(toUpdateInfo, 'Notes', lcNote) - -Execscript (_Screen.cThorDispatcher, 'Result=', toUpdateInfo) -Return toUpdateInfo diff --git a/Source/changelog_ver_4.txt b/Source/changelog_ver_4.txt deleted file mode 100644 index 143df1c..0000000 --- a/Source/changelog_ver_4.txt +++ /dev/null @@ -1,186 +0,0 @@ -=== Build 4.4.446 BETA (2015-04-28) === - * Added checkbox on Options form to disable saving of search results history - * Changed timestamp of search results history to 24-hour format - -=== Build 4.4.445 BETA (2015-04-28) === - * Previous build incorrectly used older version of Sedna My. - * Updated Sedna My to latest VFPx version of 2015-01-23 - * Recompiled to fix bug in using the Filter form. - -=== Build 4.4.444 BETA (2015-02-02) === - * Restoring previous search will no longer leave Search History DBC open. - * Restored warning message if search phrase contains leaded or trailing spaces. - * Updated Thor Check For Updates menu image on Options-> Update page. - -=== Build 4.4.443 BETA (2015-01-26) === - * Fixed anchor on folder icon on Search History form. - -=== Build 4.4.442 BETA (2015-01-26) === - * Fixed sound being made in some cases when starting a new search. - -=== Build 4.4.441 BETA (2015-01-26) === - * Fixed bug where LockScreen was not getting cleared. - -=== Build 4.4.440 BETA (2015-01-24) === - * Fixed startup sequence if Saved Search Folder does not exist. - -=== Build 4.4.438 BETA (2015-01-24) === - * Now making a copy of the Filter form settings with each saved search. - * Added folder icon button on Search History form to open the folder, if needed. - -=== Build 4.4.437 BETA (2015-01-24) === - * Added short key for Restore button - * Can now Right-Click on Restore button to restore last search. - * Can now double-click on row in Search History click to select and close form. - * Search History form now remembers form size and positions between use. - -=== Build 4.4.436 BETA (2015-01-24) === - * Speed improvements when restoring a previous search result. - * Made the "Load" button default button on Search History form. - -=== Build 4.4.434 BETA (2015-01-24) === - * Added UI form to select and restore earlier search results. - -=== Build 4.4.431 BETA (2015-01-23) === - * Added Restore Previous Searches feature. - -=== Build 4.4.429 BETA (2015-01-21) === - * Added feature to restore previous search results when GoFish starts up. - * Converted SSC format to use FoxBin2Prg - -=== Build 4.3.055 BETA (2013-06-06) === - * Added code to browse DBFs with SuperBrowse if Thor is present - -=== Build 4.3.054 BETA (2013-06-06) === - * Fixed bug where DBFs could not be searched in Project scope. - -=== Build 4.3.053 BETA (2012-11-15) === - * Added handling for files with corrupted memo fields. - -=== Build 4.3.052 BETA (2012-10-06) === - * Fixed bug when searching old reports from FoxPro 2.6 - * Added support for exporting to Excel. - -=== Build 4.3.050 BETA (2012-10-06) === - * Improved sorting capabilities for grid. Click columns headers as follows: - [1] Left click always selects primary sort, pushes previous primary and secondary sorts down to second and third. - [2] Right click selects secondary, leaves primary untouched, pushes current secondary down to third. - -=== Build 4.3.049 BETA (2012-10-05) === - * Added Right-Click on Header for Secondary Sorting - * Sorting in columns is now case insensitive - -=== Build 4.3.048 BETA (2012-10-04) === - * Fixed bug which prevented matches from being found in PRG files in certain cases. (Reported by JRN 2012-10-04) - -=== Build 4.3.047 BETA (2012-09-10) === - * Fixed bug which prevented double-clicking from opening methods on Forms. - -=== Build 4.3.046 BETA (2012-09-03) === - * Now using BindEvent() to handle double clicks from main grid - -=== Build 4.3.045 BETA (2012-08-30) === - * Added handler for 'dot' so GoFish will work properly with 'IntellisenseX by Dot' from Thor - -=== Build 4.3.027 BETA (2012-07-01) === - * Fixed call in main form Init() that was resetting grid to defaults.\\ - (Switched it from FormatGrid() to FormatGridForReplaceMode(), which also\\ - fixed the case where the form was closed while Replace mode columns were visible) - * Extracted some code from FormatGridForReplaceMode() to ShowGridColumn() - -=== Build 4.3.026 BETA (2012-07-01) === -* Fixed column ordering on grid to better handle hidden columns. Columns on options -form are now sorted by visible first. -* Fixed bug that caused columns to get jumbled up when showing columns related to Replace Mode. - -=== Build 4.3.024 BETA (2012-07-01) === - * Added code to migrate the Replace Detail table to the new structure of the Results cursor. - * Added Options spinner for setting the html code view zoom factor. - * Now show all Replace Detail fields when browsing replace history. - -=== Build 4.3.022 BETA (2012-06-29) === - * Added ClassLoc column to search results grid - * Rename several columns in the search results related to class, baseclass, parent, and object names - * Added dialog to notify user if there were any Error during Replace operation - * Updated image for Replace errors to a larger image so it's earlier to see. - -=== Build 4.3.014 (2012-06-18) === - * Fixed bug in Edit Line Replace Mode when deleting the entire line. - * Fixed bug which prevented GF from opening the correct method when editing file from GF. - -=== Build 4.3.012 (2012-06-08) === - * Fixed Editing of SCX and VCX from within GoFish so it will open to the correct method and object.\\ - (This bug only affected non-Thor users) - -=== Build 4.3.011 (2012-06-03) === - * Filter Form: Added support for wildcards (* and ?) and the Not operator (!) in string match fields. - * Added option for confirming 'Whole Word' search if it is marked when starting a new search. - * Added option for clearing the 'Apply Filter' checkbox with each new search - * Added option to specify number of MRU entries to display in Scope/Search Expression dropdowns. - * Fixed Report so that it will correctly use the same filter that is in place on the main grid. - - === Build 4.3.002 (2012-05-07) === - * Added new Search Mode: Uses wildcard matching (uses the FoxPro LIKE() function) - * Added radio buttons on Advanced form to select Search Mode - * Restored match word highlighting in Html code view - * Enhanced File Template filter to accept '?' in filename or ext. - * Fixed some other misc html code rendering things. - * Fixed issue where Browser Zoom factor can get corrupted. - * Big-A and Little-A buttons will now be hidden when Html code browser panel is collapsed. - * Enhanced PropNvl() function to return default value if data type of stored value is does not match default value data type - * Added initial code to prepare for support of Google Chrome Frame to render html view. - -=== Build 4.2.068 (2012-03-30) === - * Fixed bug when double-clicking to view a match from a dbf (Browse is called) - (Fixed in TreeView and in Grid) - -=== Build 4.2.067 (2012-03-29) === - * Fixed searching so it will find matches in the .h include filename in SCX forms - * Can now be compiled to a free-standing .exe for use outside of VFP IDE - * Adjusted some label captions on main and Advanced form - -=== Build 4.2.066 (2012-02-24) === - * Added necessary file extensions to backup DBCs and Labels during Replace - -=== Build 4.2.065 (2012-02-21) === - * Fixed Search Scope to work with UNC paths i.e. \\server_name\folder_name - -=== Build 4.2.064 (2012-02-21) === - * Fixed Search Scope to work with mapped drive letters - -=== Build 4.2.063 (2012-02-21) === - * Fixed SetScope() method to properly allow Search Scope to be set from an external call - -=== Build 4.2.062 (2012-02-20) === - * Fixed Search Scope History combo to remember <> and <> - -=== Build 4.2.061 (2012-02-14) === - * Fixed bug in Search Scope combo when choosing <> or <> - * Added to the list of MatchTypes that can be replaced - -=== Build 4.2.060 (2012-02-10) === - * Fixed Search Scope combo to better handle clicking, editing, pasting - * Added Try/Catch SearchInTable() method to guard against corrupt dbf/fpt files - -=== Build 4.2.059 (2012-02-08) === - * You can now click to set focus into the Search Scope combo box - -=== Build 4.2.057 (2012-02-02) === - * Set AllowOutput = .f. on main GoFish for to prevent from appearing in form. - * Added .Category setting to Thor_Tool_GoFish.prg to work with Thor 1.20 'Thor Tools' menu - -=== Build 4.2.056 (2012-02-02) === - * Bug fixed in constructing Replace line text - -=== Build 4.2.055 (2012-02-01) === - * Public release - See notes for 4.2.054 and 4.2.052 - -=== Build 4.2.054 (2012-01-30) === - * Corrected error message that is displayed when RegEx expression fails. - -=== Build 4.2.052 (2012-01-25) === - * Corrected the way matches are found on Property Names and Property Values - * Added support to Browse a dbf when you double click a row in the grid. [GF_PEME_BaseTools.EditSourceX()] - * Added "Data" node to the TreeView to host matches from DBF tables. - * Fixed Progress Bar UI control so the meter bar would not expand beyond themframe. - * Added Up Arrow image to Project so it will build into the .app file. \ No newline at end of file diff --git a/Source/changelog_ver_5.txt b/Source/changelog_ver_5.txt deleted file mode 100644 index 6a015f7..0000000 --- a/Source/changelog_ver_5.txt +++ /dev/null @@ -1,20 +0,0 @@ -GoFish Change Log - -** Ver 5.0.170 ** Released 2021-03-24 -1. GoFishSearchEngine class: Fixed folder paths for cFilesToSkipFile, cReplaceDetailTable, cReplaceDetailTable. -2. Options Form-> Replace tab: Added read-only fields to show values for cReplaceDetailTable and cReplaceDetailTable. - -** Ver 5.0.169 ** Released 2021-03-24 -1. Removed matches from a Project PJX on the "Key" field (i.e. Match Type = "" in the results grid.) - -** Ver 5.0.168 ** Released 2021-03-23 -1. In the search results grid, if **Match Type** is`<<>` (i.e. matching a filename in a Project), then double-clicking on the row will now open the file with correct editor. (Contributed by Jim Nelson) -2. In the search results treeview, the results are now ordered by Class, Filename, FilePath. (Contributed by Jim Nelson) -3. GoFishSearchEngine.vcx has been converted to PRGs file. The 2 classes in the VCX are replaced by GoFishSearchEngine.prg and GoFishSearchOptions.prg. This was done to remove binaries (VCX) from the code base, in hopes of making it easier to maintain the source code in a more source control friendly style. -4. Converted GF_PEME_BaseTools.vcx to prg. - -** Ver 5.0.164 ** - Released 2021-03-19 -1. Fixed a bug in Delete feature of Search History form that could allow GF to delete (essentially) all files and folders starting at the root path of the disk. Error was reported in Issue #9 on the GitHub Issue Tracker. https://github.com/mattslay/GoFish/issues/9 -2. Added text source code files for VCX and SCX files, as generated by FoxBin2Prg. -3. Thor maintainers will need to release a new `Thor_Update_GoFish5.prg` updater to distribute this update. - diff --git a/Source/gfadvancedreplace.prg b/Source/gfadvancedreplace.prg new file mode 100644 index 0000000..62c1ed9 --- /dev/null +++ b/Source/gfadvancedreplace.prg @@ -0,0 +1,116 @@ +#Define CR Chr[13] +#Define LF Chr[10] + +* GF Advanced replace +* Parameter lcText in the line of code where a match was found +* Result is the new line of code. + +* As Matt would have said, careful, buddy! + +*** JRN 2023-01-31 : returning 0 or .F. will not change the line +*** JRN 2024-09-19 : returning null deletes the line + +Lparameters tcOrigtext + +Local lcAlias, lcLeft, lcNew, lcOrder, lcParams, lcResult, lnPos + +* Paste in one the examples below and modify as appropriate + +Return m.lcResult + + + +* ================================================================================ +* Example 8: Add &lcFont to the end of the line +lcResult = m.tcOrigtext + ' &lcFont' + + +* ================================================================================ +* Example 7: Create two new lines, one before, one after +lcResult = 'Local lcFont' + CR + LF + m.tcOrigtext + CR + LF + 'lcFont = ThisForm.GetContextMenuFont()' + + +* ================================================================================ +* Example 6: Split Procedure SomeProc(lparam1, param2 ...) into separate lines +lcParams = Strextract(m.tcOrigtext, '(', ')', 1) +If Empty(m.lcParams) + Return 0 +Endif + +lnPos = At('(', m.tcOrigtext) +lcResult = Left(m.tcOrigtext, m.lnPos - 1) + Chr[13] + Chr[10] + 'LParameters ' + m.lcParams + + +* ================================================================================ +* Example 5: Change prompt = (any value) to AddID = 'ThorRepository' +lcLeft = Left(m.lcResult, At('=', m.lcResult)) +lcNew = Strtran(m.lcLeft, 'prompt', 'AppID ', 1, 1, 1) + [ 'ThorRepository'] +lcResult = m.lcResult + CRLF + m.lcNew + + +* ================================================================================ +* Example 4: Change 'Z:\Somefilename' to MapToUNC('Somefilename') +lcResult = m.tcOrigtext + +lcResult = Fix4(m.lcResult, ['], [']) +lcResult = Fix4(m.lcResult, ["], ["]) +lcResult = Fix4(m.lcResult, '[', ']') + +Return m.lcResult + + +* ================================================================================ +* Example 3: Insert a call to DoDefault into a procedure +* Used: +* after Whole Word Search +* for Procedure*Click +* Using filter form to exclude procedures already having references to DoDefault +lcResult = m.tcOrigtext + CR + LF + CR + LF + 'DoDefault()' + CR + LF + + +* ================================================================================ +* Example 2: Add comment && To be investigated to the end of the line +lcResult = m.tcOrigtext + ' &' + '& To be investigated' + + +* ================================================================================ +* The very first use of Advanced Replace, summer 2015 ... over 5,200 replacements +* Example 1: Map calls to this procedure: +* OpenFile2(tcPath, tcFilename, tnWorkArea, tcAlias, tlShared, tcOrder, tlNoFailure, tcIndexes) +* to this: +* UseTable(tcAlias, tcOrder) + +If Occurs('(', m.tcOrigtext) # 1 + Return 0 +Endif + +lcParams = Strextract(m.tcOrigtext, '(', ')') + +lcAlias = Alltrim(Getwordnum(m.lcParams, 4, ',')) +If Empty(m.lcAlias) + Return 0 +Endif + +lcOrder = Alltrim(Getwordnum(m.lcParams, 6, ',')) +If Empty(m.lcOrder) + lcResult = Textmerge([UseTable(<>)]) +Else + lcResult = Textmerge([UseTable(<>, <>)]) +Endif + +lcResult = m.lcResult + ' &' + '& ' + Alltrim(m.tcOrigtext, 1, ' ', Tab) + + + +* ================================================================================ +* ================================================================================ +Procedure Fix4(lcText, lcLeft, lcRight) + lcMatch = Strextract(m.lcText, m.lcLeft + 'Z:\', m.lcRight, 1, 5) + If Empty(m.lcMatch) + Return m.lcText + Else + Return Strtran(m.lcText, m.lcMatch, ' MapToUNC(' + m.lcMatch + ')', 1, 1, 1) + Endif +Endproc + + diff --git a/Source/gofish.prg b/Source/gofish.prg index 206e062..fcd1840 100644 --- a/Source/gofish.prg +++ b/Source/gofish.prg @@ -1,519 +1,553 @@ -#INCLUDE BuildGoFish.h - -*--------------------------------------------------------------------------------------------- -Lparameters tcInitialSource, tlSuppressRegisteredWithThorDialog - - -Local lcInitialSource, lcVersionFile, lcVersionLocalFilename, lcXMLFiles, llReturn -Local loGoFish, loTool - -lcInitialSource = Evl(tcInitialSource, '') - -SetupEnvironment() - -*!* ******************** Removed 11/03/2015 ***************** -*!* CreateVersionFile() && Version file is re-built every time - -If !Empty(tcInitialSource) and Upper(tcInitialSource) = 'THOR' - llReturn = TryRegisterWithThor(.t., !tlSuppressRegisteredWithThorDialog) - Return llReturn -Else - TryRegisterWithThor() && GoFish is re-registered with Thor every time -EndIf - -*-- Only allow one instance of the form to be running -If Type('_Screen._GoFish.oResultsForm') = 'O' And !Isnull(_Screen._GoFish.oResultsForm) - If _screen._gofish.oResultsForm.WindowState = 1 - _screen._gofish.oResultsForm.WindowState = 0 - Else - _Screen._GoFish.oResultsForm.Show() - EndIf - - Return -Endif - -*-- Erase all existing GF XML files to reset to default -If Upper(Alltrim(lcInitialSource)) = 'RESET' - lcXMLFiles = '"' + Home(7) + 'GF_*.xml' + '"' - Delete File (lcXMLFiles) - lcInitialSource = '' -Endif - -Set Procedure To 'GoFishProc' Additive -Set Procedure To 'mhHtmlCode' Additive -Set Procedure To 'GoFishSearchEngine.prg' Additive -Set Procedure To 'GoFishSearchOptions.prg' Additive -Set Procedure To 'GF_PEME_BaseTools.prg' Additive - -Do Form GoFish_Results With lcInitialSource - -If Version(2) = 0 && If running as an .EXE, setup Read Events loop - ON SHUTDOWN CLEAR EVENTS - Read Events - On Shutdown - -Endif - -*---------------------------------------------------------------------------- -Procedure SetupEnvironment - - - Local loGoFish - Local lcAppName, lcAppPath - - *-- 4.2.003 - Need to clear out these class definitions which may be cached by VFP from an - *-- older version of GoFish - Clear Class 'GoFishSearchEngine' - Clear Class 'GoFishSearchOptions' - Clear Class 'GF_PEME_BaseTools' - - For x = Program(-1) To 1 Step -1 && Look up through run stack to find the name of the running .APP file - lcAppName = Sys(16, x) - If '.APP' $ Upper(lcAppName) - Exit - Else - lcAppName = '' - Endif - EndFor - - lcAppName = Evl(lcAppName, Sys(16, 1)) - lcAppPath = Addbs(Justpath (GetWordNum(lcAppName, 3))) - If Empty(lcAppPath) - lcAppPath = Addbs(JustPath(lcAppName)) - Endif - lcAppName = Justfname(lcAppName) - - If '.FXP' $ lcAppName - SetPathsForDevelopmentMode(lcAppPath) - lcAppName = GOFISH_APP_FILE - EndIf - - If Type('_Screen._GoFish.oResultsForm') = 'O' And !Isnull(_Screen._GoFish.oResultsForm) - Return - Else - - *-- 4.2.003 - Create this object locally, rather than getting if from the VCX - *-- This is better since finding the VCX during a Thor installation of GoFish can - *-- be tricky. - loGoFish = CreateObject('Empty') - AddProperty(loGoFish, 'cAppPath', lcAppPath) - AddProperty(loGoFish, 'cAppName', lcAppName) - AddProperty(loGoFish, 'cVersion', GOFISH_VERSION) - AddProperty(loGoFish, 'cBuildDate', GOFISH_BUILDDATE) - AddProperty(loGoFish, 'dBuildDate', GOFISH_dBUILDDATE) - AddProperty(loGoFish, 'oResultsForm', .null.) - - _Screen.AddProperty('_GoFish', loGoFish) && Add this object onto _Screen, so it can accessed from GoFish forms - - Endif - -Endproc - -*-------------------------------------------------------------------------------- -Procedure SetPathsForDevelopmentMode(tcAppPath) - - *-- If running this bootstrap in dev mode,we need to setup these paths - *-- Note: This is not required when the compiled .app file is running - Set Path To (tcAppPath) Additive - Set Path To (tcAppPath + 'Prg') Additive - Set Path To (tcAppPath + 'Forms') Additive - Set Path To (tcAppPath + 'Lib') Additive - Set Path To (tcAppPath + 'Lib\VFP\My') Additive - Set Path To (tcAppPath + 'Lib\VFP\FFC') Additive - Set Path To (tcAppPath + 'Images') Additive - Set Path To (tcAppPath + 'Menus') Additive - -Endproc - -*---------------------------------------------------------------------------- -Procedure TryRegisterWithThor(tlForcedRegister, tlShowConfirmationDialog) - -Local lcThorVersion, llReturn, llThorPresent - - - Try && See if Thor is running - lcThorVersion = ExecScript(_Screen.cThorDispatcher, "Version=") - llThorPresent = .t. - Catch - If tlShowConfirmationDialog - MessageBox('Thor is not presently running on your system. Please install/run it first.', 0, 'Thor required.') - Endif - llThorPresent = .f. - Finally - EndTry - - If !llThorPresent - Return .f. - EndIf - - llReturn = RegisterWithThor() - - If !tlForcedRegister - Return - EndIf - - If tlShowConfirmationDialog - If llReturn - MessageBox('Successfully registered with Thor.', 0, GOFISH_APP_NAME) - Else - MessageBox('Error attempting to register with Thor.', 0, GOFISH_APP_NAME) - Endif - Endif - - Return llReturn - -Endproc - -*------------------------------------------------------------------------------------------------------ -Procedure RegisterWithThor - - Local llRegisterApp, llRegisterUpdater - - llRegisterApp = RegisterAppWithThor() - - llRegisterUpdater = RegisterUpdaterWithThor() - - RegisterVfpxLinkWithThor() - RegisterDiscussionGroupWithThor() - RegisterBitBucketLinkWithThor() - - Return (llRegisterApp and llRegisterUpdater) - -Endproc - - -*-------------------------------------------------------------------------------------- -Procedure RegisterAppWithThor() - - Local lcFolderName, lcFullAppName, loThorInfo, lcCode, lcPlugIn - - Try - loThorInfo = Execscript (_Screen.cThorDispatcher, 'Thor Register=') - Catch - loThorInfo = .Null. - Endtry - - If Isnull (loThorInfo) - Return .F. - Endif - - - With loThorInfo - * Required - .Prompt = GOFISH_APP_NAME && used when tool appears in a menu - .Description = 'Advanced Code Search Tool' && may be lengthy, including CRs, etc - .Author = 'Matt Slay' - .PRGName = THOR_TOOL_NAME && a unique name for the tool; note the required prefix - .Category = 'Applications|GoFish' - - .AppName = GOFISH_APP_FILE && no path, but include the extension; for example, GoFish5.App - * Note that this creates This.FullAppName, which determines the full path of the APP - * and also This.FolderName - - * .FolderName = 'C:\Visual FoxPro\Programs\GoFish All Versions\GoFish5\Source' - * .FullAppName = .FolderName + '\' + GOFISH_APP_FILE - - lcFolderName = .FolderName - lcFullAppName = .FullAppName - - .PlugInClasses = 'clsGoFishFormatGrid' - .PlugIns = 'GoFish Results Grid' - - Text To lcCode Noshow Textmerge - Do '<>' - EndText - - Text To lcPlugIn Noshow - -EndProc - - -Define Class clsGoFishFormatGrid As Custom - - Source = 'GoFish5' - PlugIn = 'GoFish Results Grid' - Description = 'Provides access to GoFish results grid to set colors and other dynamic properties.' - Tools = 'GoFish5' - FileNames = 'Thor_Proc_GoFish_FormatGrid.PRG' - DefaultFileName = '*Thor_Proc_GoFish_FormatGrid.PRG' - DefaultFileContents = '' - - Procedure Init - **************************************************************** - **************************************************************** - ***TEXT*** To This.DefaultFileContents Noshow -Lparameters toGrid, tcResultsCursor - -*-- Sample 1: Dynamic row coloring as used by GF -Local lcComments, lcPRG, lcPRGColor, lcSCX, lcSCXColor, lcVCX, lcVCXColor - -lcSCX = 'Upper(' + tcResultsCursor + '.filetype) = "SCX"' -lcSCXColor = 'RGB(0,0,128)' - -lcVCX = 'Upper(' + tcResultsCursor + '.filetype) = "VCX"' -lcVCXColor = 'RGB(0,128,0)' - -lcPRG = 'Upper(' + tcResultsCursor + '.filetype) $ "PRG TXT H INI XML HTM HTML ASP ASPX"' -lcPRGColor = 'RGB(255,0,0)' - -toGrid.SetAll('DynamicForeColor', 'Iif(' + m.lcSCX + ', ' + m.lcSCXColor + ', ' + ; - 'Iif(' + m.lcVCX + ', ' + m.lcVCXColor + ', ' + ; - 'Iif(' + m.lcPRG + ',' + m.lcPRGColor + ', RGB(0,0,0))' + ; - ')' + ; - ')', 'COLUMN') -Return - -*-- Sample 2: Alternative provided by Jim R. Nelson -*-- Assigns row colors based on field MatchType -#Define ccBolds "", "", "", "", "<>", "<>", "<>" -#Define ccPropertyName "" -#Define ccPropertyValue "" - -Local lcBolds, lcCode, lcCodeColor, lcComments, lcCommentsColor, lcFileName, lcOthersColor -Local lcPropNameColor, lcPropertyName - -lcPropertyName = [0 # Atc("", "", "", "", "<>", "<>", "<>" +#Define ccPropertyName "" +#Define ccPropertyValue "" + +Local lcBolds, lcCode, lcCodeColor, lcComments, lcCommentsColor, lcFileName, lcOthersColor +Local lcPropNameColor, lcPropertyName, llRegister + +lcPropertyName = [0 # Atc("