View Bak_and_Zip_Sample1.bat
@REM This will backup the File Extensions listed below for ROBOCOPY to a subfolder | |
@REM then zip using PowerShell to a file named: ProjName_Date_Time.ZIP | |
@REM I place this BAT file in the Project folder named: _Bak_and_Zip_ProjBane.bat | |
@REM This backs up to a sub folder named _Bak_ under the project, some times I place this folder elsewhere | |
@REM This saves the CLW that allows for doing a code compare | |
@REM ----------------------------------------------------------------- | |
@echo off | |
for /f %%I in ('wmic os get localdatetime ^|find "20"') do set dt=%%I | |
REM dt format is now YYYYMMDDhhmmss... |
View ChooseColorAPI.clw
!Clarion's ColorDialog() does not have the deatures of the API ChooseColor like saving the 16 custom colors | |
!From https://www.icetips.com/showarticle.php?articleid=272 | |
!A few changes to Larry's code by Carl: | |
! Set cc.rgbResult = W{PROP:Color} before call. Should CC_RGBINIT be conditional? | |
! Check for ChooseColor returning True with IF ccBool THEN . | |
! Comment UnlockThread. | |
! Prototype a (LONG cc) so no need for type at Map level. Add DLL(1) | |
!----------------------------------------- | |
!Windows API: Saving and restoring custom colors for ColorDialog |
View RemoveDirectoryOfFiles.clw
RemoveDirectoryFiles(STRING FolderPath,STRING Specs2Purge,LONG ShowWindow=0,<*LONG OutCountRemoved>),LONG,PROC ! Returns Error Cnt | |
DB(STRING DBString) !OutputDebugString wrapper DebugOutput.clw https://gist.github.com/CarlTBarnes/d3c7a3779b094f0ed48186d04a9b45e6 | |
MODULE('Win32') | |
DeleteFileA(*cstring lpFileName),BOOL,RAW,PROC,PASCAL,DLL(1) | |
GetLastError(),LONG,PASCAL,DLL(1) | |
END | |
!Specs2Purge can be multiple using semicolon e.g. *.tmp;*.$$$;*.xxx |
View ExistsDirectory_or_ExistsFile.clw
! Clarion EXISTS() returns True for File or Directory. | |
! Sometimes you need to know you have a Directory, or a File | |
!----------------------------------------------------------------------------------------------------- | |
MAP | |
ExistsDirectory PROCEDURE(STRING pDirName),BOOL !True if Directory and Not file | |
ExistsFile PROCEDURE(STRING pFileName),BOOL !True if File and Not Directory | |
MODULE('win32.lib') | |
GetFileAttributes(*CSTRING FileName),LONG,PASCAL,DLL(1),RAW,NAME('GetFileAttributesA') !Returns Attribs | |
END |
View FileAttributes.clw
MAP | |
FileStripReadOnly PROCEDURE(string _filename),BOOL !True if Worked | |
MODULE('win32.lib') | |
SetFileAttributes(*CSTRING FileName,LONG NewFileAttribs),BOOL,PROC,PASCAL,DLL(1),RAW,NAME('SetFileAttributesA') | |
GetFileAttributes(*CSTRING FileName),LONG,PASCAL,DLL(1),RAW,NAME('GetFileAttributesA') !Returns Attribs | |
END | |
!-------------------------------------------------------- | |
FileStripReadOnly PROCEDURE(string _filename) !,BOOL | |
Attrs LONG,AUTO |
View ReportTest.clw
!Report Test Framework by Carl Barnes from https://gist.github.com/CarlTBarnes https://git.io/JtP6r | |
!----------------------------------------------------------------------------- | |
!Try various REPORT specs and PROP Settings quicky in this little Win32 project that has its own simple Previewer. | |
!If you want to report a bug this can be used to create a small example | |
! | |
!1. Create a new Win32 Project and paste this code. | |
!2. Add the Variables used on the REPORT - at #2 below | |
!3. Add Your REPORT and DETAIL's - at #3 below | |
!4. Add your PRINT() code and PROP code - at #4 below | |
!5. Run and Test, adjust code, repeat |
View ReportPrintWithDebugLogging.clw
!Add local ReportPrint() | |
!Define: DbgString BYTE | |
! | |
!Change PRINT(Rpt:Detail) to ReportPrint(?Detail,'Rpt:Detail') | |
!If desired set DbgString=1 and each Band gets a String Label 'Rpt:Detail' | |
MAP | |
ReportPrint PROCEDURE(LONG BandFEQ, STRING BandName) | |
END | |
DbgString BYTE |
View DEP_Policy_Test.clw
!DEP Policy Test by Carl Barnes released under the MIT License | |
!C11.13620 has a new Project DEP setting. This does NOT require 13620 | |
!You do NOT need the new 13620 DEP Project setting to turn on DEP, just call SetProcessDEPPolicy(1) | |
!You can add this procedure in your application to check DEP status at runtime on the end user machine. | |
!It probably should be wrapped in a simple CLASS. | |
! | |
!FYI - DEP sets the IMAGE_DLLCHARACTERISTICS_NX_COMPAT bit in the IMAGE_OPTIONAL_HEADER‘s DllCharacteristics. | |
!-------------------------------------------------------------------------------------- | |
!Must DEP be turned On in Both EXE and DLL projects? NO. Only the EXE the project. | |
! It is suggested to turn on DEP in the DLL as an FYI it works with DEP. |
View PopupUnder.clw
!Use the POPUP('xxx', X, Y, 1=Relative) to position a POPUP() right under a Button so it appears to drop down | |
!The fourth parameter is not documented well. Pass 1 to indicate the X/Y are Relative so can use Clarion GetPosition() | |
! | |
!Replace existing Popup() placing the ?Control as the first parameter | |
!Example: OF ?MenuBtn ; CASE PopupUnder(?,'Copy|Delete') | |
!--------------------------------------- | |
MAP | |
PopupBeside(LONG BesideCtrlFEQ, STRING PopMenu),LONG | |
PopupUnder(LONG UnderCtrlFEQ, STRING PopMenu),LONG | |
PopupBeside PROCEDURE(LONG BesideCtrlFEQ, STRING PopMenu),LONG |
View CBDropListLEFT.clw
MEMBER() | |
!-------------------------- | |
! CBDropLeftClass - by Carl Barnes - Release under the MIT License | |
!-------------------------- | |
INCLUDE('EQUATES.CLW') | |
INCLUDE('CBDropListLEFT.INC'),ONCE | |
CBRect GROUP,TYPE | |
Left SIGNED | |
Top SIGNED |
NewerOlder