ALV中自定义按钮
ALV中自定义按钮
----李宝勋
使用alv的时候,我们经常性需要添加自定义按钮,实现用户单击事件调用,这里介绍通过GUI状态增加按钮。
假如你定义了报表程序ZMMR3009,里面已经编写好了alv的实现函数:如下:CALL FUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM=W_REPID"当前程序
I_SAVE=''
IS_LAYOUT=I_LAYOUT"子函数layout_build填充的格式定义
IT_FIELDCAT=I_FIELDCAT_ALV[]"子函数fields填充的各列
TABLES
T_OUTTAB=IT_BLNTD
EXCEPTIONS
PROGRAM_ERROR=1
OTHERS=2.
在你的程序里找到函数:‘REUSE_ALV_GRID_DISPLAY’,双击这个函数名,打开这个函数代码窗口:如下图:
点击工具栏上的‘Dispaly Object List’按钮,打开对象浏览器窗口,如下图:
展开函数组:SLVC_FULLSCREEN,并选中GUI状态下的:STANDARD_FULLSCREEN 项,如下图:
右键单击,选择copy选项,在打开的窗体中设置如下,将alv的gui状态复制到你的程序里,程序:ZMMR3009是的目标程序,状态:STANDARD_004是你新建的gui名称,如下图:
然后点击'Copy',直到弹出的窗体全部消失,然后在你的程序里添加如下代码:
CONSTANTS CNS_PF_STATUS TYPE SLIS_FORMNAME VALUE
'ALV_PF_STATUS'."alv自定义按钮
CONSTANTS CNS_USER_COMMAND TYPE SLIS_FORMNAME VALUE
'ALV_USER_COMMAND'."alv自定义按钮响应事件
上面代码写到alv变量定义的代码下面,下面添加设置GUI状态代码:FORM alv_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS'STANDARD_004'EXCLUDING rt_extab.
ENDFORM.
创建按钮开始:
双击'STANDARD_004',打开如下界面,找个空白的单元格先添加个'|',如下图:
然后在下个单元格输入名称:print,,双击这个名称弹出界面如下图:
确定后,在界面里设置按钮文本和图标等信息,如下图:
确定后,如下图
选择功能键后,确定后,如下图
输入图标文字信息,单击确定,然后点击保存按钮、编译,没有问题后,激活程序。到此按钮创建完毕。
创建按钮结束。
接下来进行在alv中进行设置自定义按钮,在alv函数:‘REUSE_ALV_GRID_DISPLAY’中添加下面的红色代码部分:
CALL FUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM=W_REPID"当前程序
I_CALLBACK_PF_STATUS_SET=CNS_PF_STATUS"设置alv的自定义按钮GUI
I_CALLBACK_USER_COMMAND=CNS_USER_COMMAND"设置alv自定义按钮响应事件
I_SAVE=''
IS_LAYOUT=I_LAYOUT"子函数layout_build填充的格式定义
IT_FIELDCAT=I_FIELDCAT_ALV[]"子函数fields填充的各列
TABLES
T_OUTTAB=IT_BLNTD
EXCEPTIONS
PROGRAM_ERROR=1
OTHERS=2.
编写自定义按钮响应事件:
FORM ALV_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN'PRINT'.
PERFORM PRINT_FORM."调用打印程序
WHEN OTHERS.
...
ENDCASE.
到此alv自定义按钮设置完毕,如果你想添加多个按钮,只需将创建按钮开始到创建按钮结束部分重复就行了,在按钮响应事件里根据你设定的功能代码键值进行不同按钮的区别。
创建好的程序运行如下:
Qt实现自定义按钮的三态效果
Qt实现自定义按钮的三态效果 好久之前做的一个小软件,好长时间没动过了,在不记录下有些细节可能都忘了,这里整理下部分功能的实现。按钮的三态,指的是普通态、鼠标的停留态、点击态,三态是界面交互非常基本的一项功能,Qt中如果使用的是原始的按钮,三态的效果是有的,鼠标放上去会变色,点击的时候有凹陷的效果,工具栏中的图标也具备三态效果,但是如果自定义的图标这个效果就没有了。下面整理下自定义按钮图标的方法,先看下我做的效果图:图中表示了鼠标放在按钮上和按下的效果,完成了基本的三态,下面说下我的具体实现过程。资源准备首先要准备好对应状态的按钮图标,按钮图标可以从网上搜集,图标需要找png格式的,ico格式的可以使用工具转换为png格式的,而且是背景透明的png格式,要想实现不同状态对应不同的效果还需要处理出其他状态,这就得靠PS来完成了,使用PS也非常简单,我这里使用PS的内阴影来实现按下的效果,用斜面和浮雕来实现鼠标停留效果。具体设置如下面两幅图所示:图:使用内阴影实现的按下效果图:使用斜面和浮雕实现的鼠标停留效果处理好后的图标如下图。加入工程将处理好的图标文件放入工程文件夹下,新建Qt-Qt资源文件。输入文件名保存并加入工程。依次添加前缀,添加文件将文件
加入工程,如下图所示。这些文件添加到工程后就可以在界面设计中使用,很多人在界面设计中改变按钮的样式会直接选择按钮图标,如下图所示。通过选择按钮的icon设置对应大小来实现,然而这样的一个效果就是按钮仍然是有背景和边框的,效果如下图所示。因此很多人的实现方法是通过继承QToolButton或者重绘按钮来实现,然而这些操作仍然相对麻烦,经过对比和查找,这里使用StyleSheet来实现。找到对应的按钮,先在界面编辑中编辑对应的样式表,这里添加border-image,对应普通情况下的按钮图标。然后在主程序中在按钮使用之前指定其他两种状态所对应的图标,代码非常直接,就是指定每种状态对应的文件,QPushButton:hover标示鼠标悬停所对应的状态,QPushButton:pressed则对应鼠标点击的状态,代码如下,注意包含的头文件。#include ui->play_button->setStyleSheet("QPushButton{border-ima ge: url(:/new/icons/icons/play-pause.png);}" "QPushButton:hover{border-image: url(:/new/icons/icons/play-pause-hover.png);}" "QPushButton:pressed{border-image: url(:/new/icons/icons/play-pause-pressed.png);}");
八键鼠标自定义办公按键操作步骤
以定义办公常用按键为例介绍自定义用法: 一、双击配置具图标,如图,打开配置工具页面如下图 二、下面可以开始我们的自定义之旅吧: 进入界面后,首先我们要读取设备参数,这时配置软件会自动读取鼠标的 参数点击确认, 我们现在以办公常用键来自定义这款鼠标的按键, 正常情况,我们的鼠标左,右键和滚轮(中键)不需要重新定义,我们就将“Back”键“Forward”键和“DPI 循环切换键”, 自定义为办公软件经常用到的是“Ctrl C”组合键“Ctrl V” 组合键和快捷方式“打开默认邮件主页”
我们先来将“Forward”键,定义为“Ctrl V”,在按键定义区域找到“Forward”键, 在右下角箭头下拉选项中选中“Ctrl V”键, 如下图:
选中后按左键确认,变成如图示 再来将“Back”键,定义为“Ctrl C”, 在按键自定义区域找到“Back”键,在右 在右下角箭头下拉选项选中“Ctrl C”键,如图: 选中后按左键确认, 变成如图示
现在我们将“DPI 循环切换键”键,定义为“打开默认邮件主页”, 在按键自定义区域找到 “DPI 循环切换键”键, 在右下角箭头下拉选项选中 “打开默认邮件主页”,如图: 选中后按左键确认,变成如图示 最后我们将“免双击键”键, 定义为“打开我的电脑”, 在按键自定义区域找到 “免双击键”键, 在右下角箭头下拉选项选中 “打开我的电脑”,如图 选中后按左键确认,变成如图示
现在四个按键设置完毕后,点击右上角 ,出现如下对话框, 出现如下对话框,点击“确定” 鼠标会自动重启,重启后按键功能定义完成。 现在我们来对比一下定义前,定义后的按键功能图:定义前功能键
Android自定义Button按钮
Android自定义Button按钮 Android自定义Button按钮主要可以分成两种形式: 1.通过自定MyButton类来继承Button,将所有效果在类中实现. 2.通过xml文件来改变Button的样式和颜色. 今天我就先讲通过xml文件,稍后封装自定义Button类再补上. TestcActivity [html] package com.example.blueapp;n import android.app.Activity;n import android.os.Bundle;n public class TestcActivity extends Activity {n nnn @Overriden nnn protected void onCreate(Bundle savedInstanceState) {n nnnnnnn // TODO Auto-generated method stubn nnnnnnn super.onCreate(savedInstanceState);n nnnnnnn setContentView(https://www.360docs.net/doc/2016167037.html,yout.testc);n nnn }n }n package com.example.blueapp; import android.app.Activity; import android.os.Bundle; public class TestcActivity extends Activity { n@Override nprotected void onCreate(Bundle savedInstanceState) { nn// TODO Auto-generated method stub nnsuper.onCreate(savedInstanceState); nnsetContentView(https://www.360docs.net/doc/2016167037.html,yout.testc); n} } testc.xml [html] n
ALV中自定义按钮
ALV中自定义按钮 ----李宝勋 使用alv的时候,我们经常性需要添加自定义按钮,实现用户单击事件调用,这里介绍通过GUI状态增加按钮。 假如你定义了报表程序ZMMR3009,里面已经编写好了alv的实现函数:如下:CALL FUNCTION'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM=W_REPID"当前程序 I_SAVE='' IS_LAYOUT=I_LAYOUT"子函数layout_build填充的格式定义 IT_FIELDCAT=I_FIELDCAT_ALV[]"子函数fields填充的各列 TABLES T_OUTTAB=IT_BLNTD EXCEPTIONS PROGRAM_ERROR=1 OTHERS=2. 在你的程序里找到函数:‘REUSE_ALV_GRID_DISPLAY’,双击这个函数名,打开这个函数代码窗口:如下图:
点击工具栏上的‘Dispaly Object List’按钮,打开对象浏览器窗口,如下图: 展开函数组:SLVC_FULLSCREEN,并选中GUI状态下的:STANDARD_FULLSCREEN 项,如下图: 右键单击,选择copy选项,在打开的窗体中设置如下,将alv的gui状态复制到你的程序里,程序:ZMMR3009是的目标程序,状态:STANDARD_004是你新建的gui名称,如下图:
然后点击'Copy',直到弹出的窗体全部消失,然后在你的程序里添加如下代码: CONSTANTS CNS_PF_STATUS TYPE SLIS_FORMNAME VALUE 'ALV_PF_STATUS'."alv自定义按钮 CONSTANTS CNS_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'ALV_USER_COMMAND'."alv自定义按钮响应事件 上面代码写到alv变量定义的代码下面,下面添加设置GUI状态代码:FORM alv_pf_status USING rt_extab TYPE slis_t_extab. SET PF-STATUS'STANDARD_004'EXCLUDING rt_extab. ENDFORM. 创建按钮开始: 双击'STANDARD_004',打开如下界面,找个空白的单元格先添加个'|',如下图:
怎么制作Authorware自定义按钮
Authorware 中自定义按钮的制作 首先用图象处理软件如Photoshop 将自定义按钮的图象加工好,一般要制作两张图,也有制作三张的。即刚运行时显示第一张,当鼠标一移到按钮上时显示第二张,当鼠标左键按下时显示第三张(若只作两张则显示第一张),再在多媒体制作软件如Authorware 中作相应的设置就可完成。下面便是具体制作步骤: 1.在Photoshop 中制作如图1所示上下两张图(这两张图可不样,但一般是相近的。或色彩略异,或字有阴影等),请读者自己完成。其中底纹可用KPT3插件制作,当然不一定要底纹,可用其它任意色彩或背景,图象边际的导角可用Alien Skin 插件中的Inner Bevel 制作,文字阴影可用Photoshop5制作; 2.关闭Photoshop ,启动 Authorware ,将交互图标 移到流程线上,再将交互图标如图移到如图的右侧后按OK,如图2所示; 3.双击图2中如图上的“关节点”,出现如图3所示对话框; 4.双击图3中Cursor 右边带三个小点的小方块,则出现如图4所示选择框; 5.双击图4中手形,则选择框消失,此时将来的鼠标形态已被设置为手形; 6.双击图3中Buttons…按钮,出现如图5所示对话框; 2 3 4 5
7.双击图5中ADD按钮,出现如图6所示对话框; 8.在图6中选中UP右边的小白方块,再点击Graphic右边的Impart按钮,出现如图7对话框,要求输入图象文件; 6 7 9.在图7文件名栏中输入第一步中制作好的第张图的文件名后按Import按钮; 10 .在图6中选中Over右边的小白方块,再点击Graphic右边的Impart按钮,出现如图7对话框,要求输入图象文件; 11.在图7文件栏中输入第一步中制作好的第二张图的文件名后按Import按钮; 12.点击sound右边的Impart按钮,出现和图7同样的对话框,不过这里要求输入一音频文件; 13.在出现的对话框文件名栏中输入一音频文件后按Import按钮; 14.分别按各图中的OK三次退出所有对话框,即完成全部设置; 15.运行程序,自定义菜单按钮即出现,光标移动到按钮上按钮即变化并奏出音乐,同时鼠标变成手形。 上面制作的按钮是纯按钮,即按钮和背景是分离的,而现浒的多媒体产品中的按钮往往是和背景融合在一起的,那样更优美。其制作原理其实和上述步骤是一样的。只要先用Photoshop制作一背景图,再在此背景图的基础上制作第1步所要求的两张图,这两张图上的内容即为背景图内容的局部(第二张图可和第一张图完全不一样,但要反映出所在按钮代表的内容)。
WPF自定义漂亮的按钮样式
https://www.360docs.net/doc/2016167037.html,/zz/2008/0721/article_8170.html 首先打开Microsoft Visual Studio 2008 ,新建一个WPF项目,在上面随便放几个按钮:然后给各个按钮设置不同的背景颜色: 设置好之后就是这样啦:’’’’’’’ 然后我们就开始在App.xaml 文件中定义按钮样式了: 定义的样式代码如下:kkk 以下为引用的内容: