LZY'Blog

记录LZY的生活、行程!

« Progress中的num-entries属性说明及演示示例Progress中form语句说明及演示示例 »

Progress中的define button按钮定义语句说明及演示示例

  define button语句用于定义一个当前程序使用的静态按钮。

语法

DEFINE BUTTON button
[ AUTO-GO | AUTO-ENDKEY ]
[ DEFAULT ]
[ BGCOLOR expression ]
[ CONTEXT-HELP-ID expression ]
[ DCOLOR expression ]
[ DROP-TARGET ]
[ FGCOLOR expression ]
[ FONT number ]
[ IMAGE-DOWN image-phrase ]
[ { IMAGE | IMAGE-UP } image-phrase ]
[ IMAGE-INSENSITIVE image-phrase ]
[ MOUSE-POINTER name ]
[ LABEL label ]
[ LIKE button ]
[ PFCOLOR expression ]
[ size-phrase ]
[ NO-FOCUS [ FLAT-BUTTON ] ]
[ NO-CONVERT-3D-COLORS ]
[ TOOLTIP tooltip ]
{ [ trigger-phrase ] }

参数说明

button

  指定按钮的名称。

AUTO-END-KEY

  指定当您在选择此按钮时,Progress将ENDKEY事件应用于frame。

AUTO-GO

  指定当您在选择此按钮时,Progress将GO事件应用于frame。

DEFAULT

  指定DEFAULT以指示该按钮为默认按钮。默认按钮是在frame或dialog中没有其他支持返回的组件具有焦点时处理所有返回事件的按钮。支持返回的组件包括定义了返回触发器的任何字段组件,或任何按钮,而不管它是否定义了触发器。因此,如果一个按钮具有焦点,该按钮将处理下一个返回事件。如果没有返回触发器的其他字段组件具有焦点,则默认按钮将处理下一个返回事件。

  要使button成为它所在frame的默认按钮,还必须设置frame的默认按钮选项。

BGCOLOR expression

  指定图形用户界面中按钮的背景颜色。Progress只支持向后兼容该选项。

CONTEXT-HELP-ID expression

  使用上下文-帮助文件属性在会话、窗口或对话框级别指定的帮助文件中指定此按钮的帮助主题标识符的整数值。

DCOLOR expression

  在字符接口中指定按钮的显示颜色。这个选项在图形界面中被忽略。

FGCOLOR expression

  指定图形用户界面中按钮的前景色。Progress只支持向后兼容此选项。

FONT number

  指定按钮标签的字体。number值必须是能解析为整数值的表达式。该整数必须与系统环境文件中的特定字体相关联。

{IMAGE | IMAGE-UP } image-phrase

  当按钮处于up状态时,您希望在按钮中显示的图像。如果图像没有关闭状态,为了代码可读性,您可能需要使用IMAGE选项而不是IMAGE-UP选项。

  IMAGE | IMAGE-UP image-phrase选项在字符接口中将被忽略。

  image-phrase的语法如下:

FILE name
[ { IMAGE-SIZE | IMAGE-SIZE-CHARS | IMAGE-SIZE-PIXELS }
   width BY height
]
[ FROM { { X n Y n } | { ROW n COLUMN n } } ]

IMAGE-DOWN image-phrase

  当按钮处于down状态时,您希望在按钮内显示的图像。在字符接口中忽略IMAGE-DOWN选项。

IMAGE-INSENSITIVE image-phrase

  当按钮处于不可用(disabled)状态时,您希望在按钮内显示的图像。这个选项在字符接口中被忽略。

MOUSE-POINTER name

  指定按钮的鼠标指针。字符值名要么是Progress预定义指针的名称,要么是定义指针的Windows.cur文件的名称,要么是包含动画光标的.ani文件。

LABEL label

  按钮上显示的标签。名称应该描述选择按钮时调用的操作。标签的值必须是用引号括起来的字符串。默认标签是按钮名称。如果使用LIKE button选项而不使用LABEL选项,则该按钮将继承您所命名按钮的标签。

  您可以在标签中指定一个字符作为Windows上的导航助记符。在字符前面加上&表示字符。当按钮显示时,助记符含下划线。用户可以通过按ALT键和下划线字母来选择按钮。如果您使用相同的助记符指定了多个按钮,那么在进行选择时,Progress将焦点按制表符顺序转移到每个按钮上。

  若要在标签中包含一个文字&号,请指定一个双&&号。

LIKE button

  指示要为新按钮使用其特征的已定义按钮的名称。如果使用此选项来命名按钮,则必须在程序的前面定义该按钮。您可以通过使用LABEL、IMAGE和on-phrase选项覆盖label、image和phrase。如果不使用这些选项,该按钮将具有您所命名的按钮的特征。

PFCOLOR expression

  在字符接口中为按钮指定提示色。这个选项在图形界面中被忽略。

size-phrase

  指定button组件的外部维度。这是size-phrase的语法。

  语法

{ SIZE | SIZE-CHARS | SIZE-PIXELS } width BY height

  如果您指定SIZE或SIZE-CHARS,单位是字符;如果您指定SIZE-PIXELS,单位是像素。对于字符单位,宽度和高度的值必须是十进制常数;对于像素单位,它们必须是整数常量。

  如果没有指定大小,Progress将计算按钮的默认大小。该计算将按钮的边框厚度(即3D阴影和高光的组合,以及焦点矩形)添加到由IMAGE | IMAGE-UP image-phrase选项定义的放大图像大小。然而,边界的厚度取决于按钮是否具有双图像(up和down图像)以及是否为无焦点按钮。

NO-FOCUS [ FLAT-BUTTON ]

  指定按钮不应接受焦点。定义了无焦点属性的按钮在鼠标点击时不会聚焦,也不会接受键盘输入。此外,Progress不会为按钮生成ENTRY或LEAVE事件。无焦点按钮的行为类似于标准的Windows工具栏按钮。只有Windows才支持无焦点选项。

  没有焦点属性的按钮不会被添加到父框架的选项卡顺序中。但是,如果在按钮实现之前将无焦点属性从TRUE切换为FALSE,则该按钮将被添加到其父框架标签顺序的末尾。在实现之前将无焦点属性从FALSE切换为TRUE,将按钮从父框架的选项卡顺序中移除。

FLAT-BUTTON

  平面按钮是一种新的按钮样式,它是二维的,直到鼠标经过它,这时会出现一个3D边框。

NO-CONVERT-3D-COLORS

  指定按钮图像的颜色(即up、down和insensitive)不转换为系统3D颜色。默认情况下,Progress将图像中的灰色阴影转换为相应的系统3D颜色。使用NO-CONVERT-3D-COLORS选项将覆盖此默认行为。仅在Windows中支持NO-CONVERT-3D-COLORS选项。

  在会话期间,如果Windows通知Progress系统颜色已经改变,按钮的图像将被重新加载并转换为新的系统颜色,除非指定了NO-CONVERT-3D-COLORS选项。

TOOLTIP tooltip

  允许您为按钮定义帮助文本消息。当用户在按钮上暂停鼠标指针时,Progress将自动显示此文本。

  您可以随时添加或更改TOOLTIP选项。如果TOOLTIP设置为“”或?(未知值),然后从按钮中删除TOOLTIP。默认情况下没有TOOLTIP。仅在Windows中支持TOOLTIP。

DROP-TARGET

  指示是否希望将文件拖放到对象上。

trigger-phrase

  为按钮指定应用程序触发器。

使用示例

  这个程序定义了两个按钮,将按钮放置在一个窗体中,将触发器赋给带有ON语句的按钮,并通过在ENABLE语句引用按钮来启用按钮。

define button more-button label "More".
define button next-button label "Next".

form more-button next-button 
     with frame but-frame row 1.

form pt_mstr.pt_part pt_desc1
     with frame brief row 4.

form pt_mstr.pt_part pt_um
     with frame full row 7.

on choose of more-button
   display pt_mstr.pt_part pt_um with frame full.

on choose of next-button 
   do:
      hide frame full.
      find next pt_mstr no-error.
      display pt_part pt_desc1 with frame brief.
   end.

find first pt_mstr.

display pt_part pt_desc1 with frame brief.

enable more-button next-button with frame but-frame.

wait-for window-close of current-window.

  运行结果:

button按钮定义语句

  在运行过程时,首先显示第一个零件的编号和描述。用户可以选择MORE按钮来查看该零件的编号和单位,也可以选择NEXT按钮来查看下一个零件的编号和描述。

说明

  1. 当frame接收到默认RETURN事件时,它实际上会向默认按钮发送一个CHOOSE事件。

  2. 要创建静态按钮,你必须先定义且须定义一个静态frame来包含它。您定义的每个包含这些按钮的frame都会创建该按钮的额外实例。静态按钮组件句柄在创建按钮之前不可用。

  3. 您必须启用按钮,使其对用户可用。可以通过设置按钮的SENSITIVE属性或在ENABLE或UPDATE语句中引用按钮来启用按钮。

  4. 在基于字符的终端上,按钮显示为尖括号(<>)中的标签。用户可以通过按TAB或箭头键将鼠标指针移动到按钮上。然后用户可以通过按空格键或返回来选择按钮。

  5. 要使应用程序在图形和字符环境之间可移植,可以为按钮指定图像和标签。在图形环境中,使用图像而忽略标签;在字符环境中,使用标签而忽略图像。

  6. 如果指定按钮的大小,按钮不会受到任何包含图像大小的更改的影响。如果不指定按钮的大小,按钮会改变大小以适应图像。

  7. 对于Windows, Progress为上、下、左和右箭头提供以下预包装的图像:btn-up-arrow、btn-down-arrow、btn-left-arrow和btn-right-arrow。指定这些项中的一个来代替文件名。

  对于IMAGE-UP选项使用这些值,这样做使预打包的image可以在其up、down和insensitive状态下进行处理,而无需指定IMAGE-DOWN和IMAGE-INSENSITIVE选项。您还将根据屏幕分辨率得到适当大小的箭头。

  8. 您可以以编程方式对无焦点按钮应用条目。Progress不会报告错误。然而,按钮不会响应键盘活动。

  9. 只有当一个按钮有一个向上的图像,而没有向下的图像时,Progress 4GL才会绘制3D效果。如果按钮同时具有上像和下像,Progress不会绘制3D效果,图像本身应该用3D效果绘制。

  10. Progress只在包含256种或更少颜色的位图(bmp文件)上执行颜色转换过程。但是,您可能会考虑使用16色位图,因为只有位图颜色表中的前16个条目会被转换。

  11. 图标的颜色(.ico文件)不会转换,即使CONVERT-3D-COLORS是TRUE,来确保图标正确显示在按钮上,也是使用透明背景绘制图标。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 100427 |

Copyright 2009-2012 LZY'Blog. | ICP:蜀ICP备05027543号