Skip to content

Instantly share code, notes, and snippets.

View CarlTBarnes's full-sized avatar

Carl T. Barnes CarlTBarnes

View GitHub Profile
!Search and Replace inside a STRING
MAP
ReplaceInto PROCEDURE(*STRING Into, STRING FindTxt,STRING ReplaceTxt,BYTE ClipInto=0),LONG,PROC !Returns Count
ReplaceText PROCEDURE(STRING InText,STRING FindTxt,STRING ReplaceTxt,BYTE ClipInto=0),STRING !Returns Strng with FindTxt Replaced
END
!------------------------------------------------------------------------------------------------------
ReplaceInto PROCEDURE(*STRING Into, STRING Find,STRING Repl,BYTE ClipInto=0)!,LONG,PROC !Returns Count
X LONG,AUTO
L LONG,AUTO
@CarlTBarnes
CarlTBarnes / ListDropDown.clw
Created July 27, 2021 18:26
LIST and COMBO -- Show the DROP List or Hide it with WinAPI message CB_SHOWDROPDOWN
MAP
ListDropDown PROCEDURE(LONG FeqList, BOOL RollUp=0) !0=Down 1=Roll Up
MODULE('Win32')
PostMessage(LONG hWnd,LONG wMsg,LONG wParam,LONG lParam),BOOL,PROC,PASCAL,DLL(1),NAME('PostMessageA')
END
END
ListDropDown PROCEDURE(LONG FeqList, BOOL RollUp=0) !0=Down 1=Roll Up
CODE !CB_SHOWDROPDOWN = &H14F
@CarlTBarnes
CarlTBarnes / AbcPreview_RptTest_FontProp111.clw
Last active June 27, 2021 03:28
Report Test Scratch Program
!Report Test Framework by Carl Barnes from https://gist.github.com/CarlTBarnes
!Using ABC Report Previewer instead of my simple previewer
!
!This tested Report${PROP:FontXxx} broken by 11.1
!
!-----------------------------------------------------------------------------
!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.
@CarlTBarnes
CarlTBarnes / ReportManualPaging.clw
Last active April 30, 2021 16:44
Report Manual Paging Class and Template
!This CLASS was written to **replace page checking code** in reports that was in many places
!For most all people the **replace** comment will NOT apply.
!
!This is not an easy an easy thing to do. I cannot explain it all here.
!
! Steps to Implement ManRpt Class
!
!1. Add the Extension Template ReportLineHeightMaxSet Template so all lines have
! a. Sets all DETAIL PROP:MaxHeight=Height so line Height is exactly correct
! b. For all DETAILs defines LnHt_Label LONG variable and sets = DETAIL PROP:Height for use with Height calcs
@CarlTBarnes
CarlTBarnes / Option2DropList.clw
Last active April 30, 2021 12:37
Replace OPTION with LIST,DROP - find all OPTION controls on a Window and generate a LIST,DROP() with FROM('Text#Value') as the RADIO('Text'),Value('valuie') plus PROMPT
! Version 2 - DROP and No DROP in one procedure. FORMAT() and ~Header option
! Generate LIST,DROP,FROM() reading OPTION and RADIOs -- or LIST without DROP
! Option + Radio's take mnore space that a LIST,DROP,FROM('radio|radio|radio')
! The Option can be easier for the User and more obvious of all the choices without dropping
! Some times you don't have the space, or too many Options can be visual clutter
!
PROGRAM
MAP
Option2DropList PROCEDURE() !Add this to your program and a button on the Window to call it,
MODULE('RTL') !Global MAP Requires this
@CarlTBarnes
CarlTBarnes / DropListPretty.clw
Last active April 28, 2021 00:03
Find all LIST with DROP and make easier to see. Color light yellow like Tool Tip, add margin, grid lines lighter
!See https://clarionhub.com/t/how-to-make-drop-list-more-visible-on-the-window/3760?u=carlbarnes
!Make Drop lists more visible coloring like Tool Tip, easier to see with Format and +1 Line Spacing
!-------------------------
DropListPretty PROCEDURE
Fld LONG,AUTO
LstFEQ LONG,AUTO !Drop List is separate control Fld{PROP:Drop}
CODE
Fld=0
LOOP
Fld=0{PROP:NextField,Fld}
@CarlTBarnes
CarlTBarnes / MenuOpenMessage.clw
Last active April 13, 2021 03:09
Menu Open Message WM_INITMENU to modify menus before opening
!Often right when Menus are being opened you want to change the Menus
!based on the other variables and things.
!Simple example of SubClass Window to get a WM_INITMENU Message before Menus display
!This adds Time to an Item text to show it changing at time it opens
!It also adds Time when closed, you get a Message when window close also WM_EXITMENULOOP
PROGRAM
INCLUDE 'TplEqu.CLW'
INCLUDE 'KeyCodes.CLW'
MAP
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="x86"
name="CompanyName.ProductName.ApplicationName"
type="win32"
/>
<description>Application with Visual Styles for Windows 10</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
@CarlTBarnes
CarlTBarnes / Region_Drag_Window.clw
Last active March 17, 2021 17:14
Region dragging with mouse example, e.g. for Splash Window with no title bar
!Examle how to drag window by Region using Mouse. Might use for a Splash with no Caption.
!Best choice is probably the LAST one BrahnMove1Accept() ... so scroll to the bottom
PROGRAM
MAP
CarlMove PROCEDURE() !I have used this on many machines and know it works
CarlMoveSimpler PROCEDURE() !From https://gist.github.com/fushnisoft/4f9da267e165033e007a
BrahnMoveOriginal PROCEDURE() !Code from Brahn's GIST that
BrahnMoveGetPoz PROCEDURE() !Use GetPosition not Prop:Xpos Prop:Ypos
@CarlTBarnes
CarlTBarnes / ChooseColorAPI.clw
Last active January 20, 2021 23:21
ChooseColor API function instead of Clarion ColorDialog()
!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