Progress-4GL 有颜色常量吗?
Does Progress-4GL have color constants?
在我的应用程序中,我需要修改一个小部件的颜色。
当我查看我的应用程序时,我看到以下代码行:
BGCOLOR 25 FGCOLOR 24 .
BGCOLOR 21 FGCOLOR 20 .
BGCOLOR 8 FGCOLOR 24 .
... (and many more)
当然,这是非常难读的。
Progress-4GL 是否有任何颜色常量,如 clRed
、clGreen
、...,出于可读性原因我可以使用?如果没有,请问网上有没有这门课的“作弊sheet”?
谢谢
不是真正的常量。但是颜色编号是指 progress.ini 或 Windows 注册表中的 RGB 值。
在 progress.ini 文件中,它位于 [颜色] 部分:
[Colors]
;******************************************************************************
; THE DEFINITION OF COLOR 0 THROUGH 15 IS PRIVATE TO THE PROGRESS ADE.
; MODIFYING COLORS 0 THROUGH 15 MAY PREVENT THE PROGRESS ADE FROM RUNNING.
; The following color definitions correspond to the ADE standards.
; 0 to 15 - reserved
color0=0,0,0
color1=0,0,128
color2=0,128,0
color3=0,128,128
color4=128,0,0
color5=128,0,128
color6=128,128,0
color7=128,128,128
color8=192,192,192
color9=0,0,255
color10=0,255,0
color11=0,255,255
color12=255,0,0
color13=255,0,255
color14=255,255,0
color15=255,255,255
或在注册表中(例如 HKEY_CURRENT_USER\SOFTWARE\PROGRESS.7\Colors:
如果您的运行时使用 ini 或注册表基于启动参数 -basekey ini -ininame .
颜色 0 到 15 不应 修改。
为了便于阅读,请使用 enum
或 preprocessors
根据您在 ini 文件或注册表中定义颜色的方式来定义您想要的颜色。
// color.cls
enum color:
define enum
black = 0
dark-blue = 1
dark-green = 2
dark-cyan = 3
dark-red = 4
dark-purple = 5
// ...
white = 15
.
end enum.
不幸的是,当 fgcolor 需要时,枚举不会自动转换为其整数值:
define frame fr
with
bgcolor integer( color:dark-purple )
.
view frame fr.
wait-for close of frame fr.
有了预处理器,这会更简单一些:
// color.i
&global define color-black 0
...
&global define color-dark-purple 5
&global define color-white 15
然后使用它们:
{ color.i }
define frame fr
with
bgcolor {&color-dark-purple}
.
view frame fr.
wait-for close of frame fr.
在我的应用程序中,我需要修改一个小部件的颜色。
当我查看我的应用程序时,我看到以下代码行:
BGCOLOR 25 FGCOLOR 24 .
BGCOLOR 21 FGCOLOR 20 .
BGCOLOR 8 FGCOLOR 24 .
... (and many more)
当然,这是非常难读的。
Progress-4GL 是否有任何颜色常量,如 clRed
、clGreen
、...,出于可读性原因我可以使用?如果没有,请问网上有没有这门课的“作弊sheet”?
谢谢
不是真正的常量。但是颜色编号是指 progress.ini 或 Windows 注册表中的 RGB 值。
在 progress.ini 文件中,它位于 [颜色] 部分:
[Colors]
;******************************************************************************
; THE DEFINITION OF COLOR 0 THROUGH 15 IS PRIVATE TO THE PROGRESS ADE.
; MODIFYING COLORS 0 THROUGH 15 MAY PREVENT THE PROGRESS ADE FROM RUNNING.
; The following color definitions correspond to the ADE standards.
; 0 to 15 - reserved
color0=0,0,0
color1=0,0,128
color2=0,128,0
color3=0,128,128
color4=128,0,0
color5=128,0,128
color6=128,128,0
color7=128,128,128
color8=192,192,192
color9=0,0,255
color10=0,255,0
color11=0,255,255
color12=255,0,0
color13=255,0,255
color14=255,255,0
color15=255,255,255
或在注册表中(例如 HKEY_CURRENT_USER\SOFTWARE\PROGRESS.7\Colors:
如果您的运行时使用 ini 或注册表基于启动参数 -basekey ini -ininame .
颜色 0 到 15 不应 修改。
为了便于阅读,请使用 enum
或 preprocessors
根据您在 ini 文件或注册表中定义颜色的方式来定义您想要的颜色。
// color.cls
enum color:
define enum
black = 0
dark-blue = 1
dark-green = 2
dark-cyan = 3
dark-red = 4
dark-purple = 5
// ...
white = 15
.
end enum.
不幸的是,当 fgcolor 需要时,枚举不会自动转换为其整数值:
define frame fr
with
bgcolor integer( color:dark-purple )
.
view frame fr.
wait-for close of frame fr.
有了预处理器,这会更简单一些:
// color.i
&global define color-black 0
...
&global define color-dark-purple 5
&global define color-white 15
然后使用它们:
{ color.i }
define frame fr
with
bgcolor {&color-dark-purple}
.
view frame fr.
wait-for close of frame fr.