谁有软件使用说明得规范?
解决方案 »
- VC6编写的应用程序图标怎样变为Win7样式的大图标?
- 枷锁 对象的一个变量,是锁住整个对象?还是单单锁住该对象的一个变量?
- 菜单加单击事件问题
- 小问题_关于透明度
- 关于extern型变量的使用问题???
- 关于保存用户输入的数据
- 关于ReadFile异步操作的问题以及我对同步操作和异步操作的理解,求指正
- 怎样在不同的进程中,通过发消息的方式传递字符串?
- mfc 从数据库读数据然后写到List control 怎么写不进去?
- 一个关于TCP/IP包头教验和的问题
- 散分了,专家分与等级是怎么计算的呀!!!痛苦呀!!!2400&&&&&1400
- 那个 VC++ .NET 和 VC6 有什么区别呀???
一、控件选择
选择控件应根据每种控件的用途,而且应使界面尽可能直观,
激发某一动作
Command Button(命令按钮)
指明一种选择
CheckBox(检查框)RedioButton(单选钮)
修饰
Line(直线)Oval(椭圆)Rectangle(矩形)RoundRectangle(圆角矩形)
显示数据
DropDownListBox(下拉列表框)DataWindow Control(DataWindow控件)EditMask(带格式编辑框)
Graph(图形控件)ListBox(列表框)MultiLineEdit(多行编辑器)Picture(图片控件)
SingleLineEdit(单行编辑器)StaticText(静态文本)
二、控件使用
避免一屏使用过多的控件,如果需要控件太多,可以用多个窗口实现。
控件之间保持适当的距离,并将同类功能的控件分组且画在同一区域内。
对于可编辑或可选的控件使用较明显的边框(例如:外框,阴影),对于只作提示作用的控件则不加边框。
将用户在程序运行过程中不能使用的控件变灰(即Enabled=False) 在MDI的Sheet中避免使用过多的PictureButton或CommandButton。如果要完成某个处理动作,可通过菜单实现。
三、菜单设计
一个menu中避免有过多的菜单项。 菜单一般限制在两层深度以内。 用户不可使用的菜单项应变成灰色(Enabled属性置成False). 菜单文字应易于理解,对于将显示对话框的菜单项应在名字后面加省略号,例About...,Open...。 对于标准菜单项应使用原名,例如File, Edit,并且位置应与原来相同。 对于用于状态选择的菜单项应加上选择标记(使用Check()函数)。 每个菜单上应提供帮助项。 用户可以使用键盘控制菜单(在菜单定义时加热键)。
MDI菜单除要满足上述要求外,还要符合以下要求:
(1)每个Frame Window(主窗口或狂架窗口)要有一个菜单,每一个Sheet Window(子窗口)要有一个菜单.
(2)为程序中常使的菜单项定义工具条图标(Icon).
(3)为每个菜单项提供Microlhelp.
(4)在Frame Window的菜单中应提供以下基本功能:
A、打开Sheet子窗口
B、关闭Sheet子窗口
C、显示已打开的Sheet列表
D、排列Sheet窗口
四、界面风格
登录窗口
所有系统都用同样的登录窗口,这个登录窗口大家共用一个,不必自己编写代码。模版为w_login。
窗口、Datawindow、静态文本等控件颜色。 窗口控件用朴素颜色,如灰色和黑色。 菜单项、按钮全部设置键盘快捷, 比如“文件(F)"就是一个键盘快捷为Alt+F的文件菜单。当菜单太多时,建议分类分级,多用子菜单。
快捷键设置标准为:
1、同级菜单或同一窗口中的按钮不许有重复;
2、字母大致采用文本的对应英文单词第一个字母,如果第一个字母重复,则采用第2个,以次类推; 一些常用的按钮或菜单功能相同,描述也要相同
(1)从菜单上关闭窗口,用“退出(&X)"菜单,从窗口中关闭窗口用“关闭(&C)"按钮;如果关闭某Response类型窗口时,用“确定(&O)" 执行某些动作,“取消(&C)"则不执行。
(2)不提倡图形按钮,图形按钮在Power Builder中实现得比较差,窗口、菜单、控件的布局和风格要统一,控件布局要准确
窗口中的控件文字包括字体、颜色、大小、字体大小、字体粗细、背景颜色要一致,同一应用中的窗口和控件采用一种风格,而且在不同窗口中,功能相近的按钮最好设置在同样的位置,在不同的菜单中,功能相近的菜单项也设置在相同的位置。按钮控件需要进行细致布局,作到大小相等、行列对齐。
推荐用9号宋体最为屏幕显示字体,这是中文Windows中提供一种的适合屏幕显示的最小字体,这种字体没有毛刺,很自然。少用或不用粗体。
窗口大小要自适应屏幕像素模式,像素模式有640x480、800x600、1024x768等。如果不能作到控件自动适应窗口大小变化,则最好针对一种模式(建议800x600)布置所有控件。
窗口标题文字描述统一规范
窗口标题都采用“应用名字 - 窗口功能描述”的模式。比如登录窗口,可以用“??管理信息系统 - 登录”作为标题。所有窗口都应该有标题。
在一个应用中同时打开的窗口之间关系要明确
不允许在整个应用已经关闭的情况下,有的窗口还显示在屏幕上。在MDI应用中,用OpenSheet函数打开子窗口,用Open函数打开的窗口必须是Response类型的窗口,也叫模态对话框窗口。
关闭应用时,在该应用中打开的所有子窗口、非独立窗口都应关闭。
第二部分 代码编写
一、命名原则
前缀_后缀,总长度40位有效。
1、函数与结构命名标准
对象类型
前缀
举例
Window
Window function
Window structure
w_
wf_
wstrc_
w_customer
wf_netcustom
wstrc_address
Menu
Menu function
Menu structure
m_
mf_
mstrc_
m_custmenu
mf_print
mstrc_address
User object
User object function
User object structure
u_
uf_
ustrc_
u_custom
uf_set_menu
ustrc_comminfo
DataWindow
dw_
dw_custdetail
Pipeline
pipe_
pipe_sales
Function
Function structure
f_
fstrc_
f_checkreqr
fstrc_checkdata
Structure
strc_
strc_selectinfo
Query
q_
q_custorders
Cursor cur_ cur_people
Procedure proc_ proc_unit
Application function
Application structure
Appf_
Appstrc_
Appf_confirm
Appstrc_loginfo
2、控件对象命名标准
在Painter中增加一个控件后PB所给的默认前缀即为标准前缀,开发者不许任意改动。
3、变量命名标准
变量名称的前缀由两部分构成:
(1)前缀首字符:对变量作用域的描述
变量作用域
前缀首字符
Global(全局)
g...
Shared(共享)
s...
Instance(实例)
i...
Local(局部)
l...
Function Argument(函数参数)
a...
(2)前缀其余字符:对变量类型的描述
大类
数据类型
前缀其它字符
标准数据类型
Blob ...bb_ ;Boolean ...b_ ;Character ...ch_ ;Date ...d_ ;DataTime ...dt_ ;Integer ...I_; Long ...l_ ;
Real ...r_ ;String ...s_ ;Time ...t_ ;UnsignedInteger ...ui_ ;UnsignedLong ...ul_ ;
PB对象类型
DataWindow ...dw_ ;DataWindowChild ...dwc_ ;MailSession ...ms_ ;Menu ...m_
Structure ...str_ ;Transaction ...trans_ ;User object ...uo_ ;Window ...w_
变量命名举例
变量命名
解释
gi_num_lines Global integer(全局整形变量) ;sstr_data[] Shared structure array(共享结构数组变量)
iul_pointer Instance unsigned long(实例无符号长整数变量) ;lb_finished Local boolean(局部逻辑变量变量)
adw_rows Argument Datawindow(作为参数传递的DataWindow对象变量) ;
gs_buffer[] Global string array(全局字符串数组变量) ;idt_update Instance datetime(实例日期时间变量)
idb_amount Instance double(实例双精度变量) ;lw_launch_win Local window(局部窗口变量)
二、程序书写标准:
1、符号间距:
(1)操作符前后加空格(+,-,*,/,=,<>,<,>,>=等)。
(2)“="号赋值时,前后加空格。
(3)根据功能或功能完成步骤将Script用空行分隔成段,段前加说明。
2、缩进:一律使用tab键缩进。
3、大小写:
(1)变量:全部小写。
(2)PB提供的系统函数:大小写混合,如MessaegBox,OpenSheet等。
(3)保留字:大写,如CREATE,DECLARE等。
4、注释:
(1)头注释: 加在script的开始部分,主要或关键Script块都必需。 主要注明:功能,参数,返回值等
(2)Script行间注释:
A. 重要语句加注释。
B. 重要局部变量加注释。
(3)User Event必须对其功能或任务加以注释
5、变量说明原则:
全局变量的说明由指定人员负责,个人不能随便说明全局变量。 局部变量的说明在script的开始部分。 尽可能小地说明变量的作用范围。 在说明Instance,Shared及Global变量时,应加足够的注释,说明变量的使用目的。
第三部分 编程风格
一、隐藏控件的使用
窗口中隐藏控件太多,而在设计阶段这些隐藏控件不可见。弊端一是控件布局混乱,二是给合作开发伙伴造成理解上的困难,三是功能模块化不强。多用模态对话框(Response类型)实现一些相对独立的功能,尽量少用隐藏控件。
二、DataWindow控件
不许设置成可以随便移动或改变大小。如果DataWindow随便移动,必然会遮挡其它控件,造成界面混乱。如果Datawindow太小,使用滚动条即可,不必在运行时调整大小。方法是DataWindow控件不要标题。
三、在PBL库中的对象存储
在PBL库中的对象存储要按照明确的规则。在开发过程中,对象存储没有统一约定,在查找时比较困难,不知道在哪个库中去找对象,只能一一打开查找。建议将不同对象分门别类存放,比如:
PBL库文件名 描述
userobjects.pbl 存放所有用户对象; menus.pbl 存放所有菜单
windows.pbl 存放所有窗口; datawindows.pbl 存放所有datawindow
functions.pbl 存放所有全局函数; structures.pbl 存放所有全局结构
当多人开发同一程序而分类存放时,建议在库名前加上标志,比如li_datawindows.pbl等,以便知道那些库是那些人写的,避免重名。这种方法便于最终组合,也便于组合前调试。也可以按功能或公用与非公用分开的方式存放,总之要作到线索清晰,可根据对象功能或出现位置推知存放位置。
四、图片文件管理
在设计过程中,图片经常显示不出来,主要原因是使用了绝对路径,这样在不同开发者的不同开发环境之间无法拷来拷去。使用相对路径也有一些问题,比如当前目录发生改变时,窗口中的图片也显示不出来。
建议所有开发人员使用同样的方法来管理图片文件:大家共用一个虚拟路