open-insight/LSL2/STPROC/SCROLL_ENABLE.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

67 lines
2.6 KiB
Plaintext

compile function scroll_enable( EditBoxes, EditTables )
$insert logical
equ EditTableInsDel$ to 4 ;* ALLOW ROW INSERTION AND/OR DELETION FOR EDITTABLE STYLE
equ Protected$ to 8 ;* AS DOCUMENTED IN THE COLSYTLE MESSAGE IN HELP
equ ReadOnly$ to 2048 ;* FIGURED THIS OUT BY SETTING THE STYLE IN THE WINDOW THEN DEBUGGING
declare function fieldcount, utility, send_message, get_property, set_property
* PROTECT ALL CELLS IN EACH EDITTABLE, THIS WILL ALLOW SCROLLING
* FOR INDIVIDUALS WITH ONLY READ RIGHTS
* WHEN CALLING THIS FUNCTION AND YOU WANT ALL CONTROLS ON THE WINDOW TO BE SCROLL ENABLED
* BUT PROTECTED THEN THE CALLING SYNTAX IS Void = scroll_enable()
* WHEN CALLING THIS FUNCTION AND YOU WANT ONLY SPECIFICT CONTROLS ON A WINDOW TO BE SCROLL
* ENABLED THEN THE CALLING SYNTAX IS
* Void = scroll_enable( '', @window:'CONTROL1':@FM:'CONTROL2' )
* OR
* Void = scroll_enable( @window:'CONTROL1':@FM:'CONTROL2', '' )
* MAKING SURE THAT YOU PASS NULL IN THE PARAM YOU ARE NOT USING OTHERWISE IT
* WILL GRAB ALL ON THE CURRENT @WINDOW
if Assigned(EditTables) else
EditTables = utility( 'OBJECTLIST', @window, 'EDITTABLE' )
end
ETCnt = fieldcount( EditTables, @fm )
for i = 1 to ETCnt
ThisEditTable = EditTables<i>
ColCount = get_property( ThisEditTable, "LIMIT" )<1>
Styles = send_message( ThisEditTable, "COLSTYLE", 0, '' )
for j = 1 to ColCount
Styles<j> = bitor( Styles<j>, Protected$ )
next j
Void = send_message( ThisEditTable, "COLSTYLE", 0, Styles )
Style = get_property( ThisEditTable, "STYLE" )
if Style[1,2] _eqc "0x" then
convert @lower_case to @upper_case in Style
Style = iconv( Style[3,999], 'MX' )
end
Style = bitand( Style, bitnot(EditTableInsDel$) )
Void = set_property( ThisEditTable, 'STYLE', Style )
next i
convert @fm to @rm in EditTables
Void = set_property( EditTables, 'ENABLED', 1 )
* NOW MAKE THE EDIT BOXES READONLY, THIS WILL ALLOW SCROLLING
* FOR INDIVIDUALS WITH ONLY READ RIGHTS
if Assigned(EditBoxes) else
EditBoxes = utility( 'OBJECTLIST', @window, 'EDITBOX' )
end
EBCnt = fieldcount( EditBoxes, @fm )
for i = 1 to EBCnt
ThisEditBox = EditBoxes<i>
Style = get_property( ThisEditbox, "STYLE" )
if Style[1,2] _eqc "0x" then
convert @lower_case to @upper_case in Style
Style = iconv( Style[3,999], 'MX' )
end
Style = bitor( Style, ReadOnly$ )
Void = set_property( ThisEditBox, 'STYLE', Style )
next i
convert @fm to @rm in EditBoxes
Void = set_property( EditBoxes, 'ENABLED', 1 )
return 0