Database 版 (精华区)
发信人: sleep (休息休息), 信区: Database
标 题: Visual FoxPro 中制作软件封面
发信站: 哈工大紫丁香 (2000年12月04日14:17:59 星期一), 站内信件
Visual FoxPro 中制作软件封面 范例
一个好的软件还需要有一个漂亮的封面,用Visual FoxPro 编制应用程序时往往会忽视这一问题。在Visual FoxPro 5.0中我们一样可以制作出如同微软的WORD、POWERPOINT等软件的漂亮的封面。
一、创建表单集。Visual
FoxPro的应用程序一般都至少有一个表单,进入主表单中,选择‘表单’菜单中的‘创建表单集’,创建一个表单集(FORMSET1)。需要注意的是,如果你的表单中的自定义的属性、方法等,当创建表单集之后,这些属性和方法会升级为表单集的属性和方法,原程序中的调用则需要进行修
改。设置表单集的Windowtype属性为1-模式。
二、制作封面表单。选择‘表单’菜单中的‘添加新表单’,建立一个新的表单。设置它的Name属性为“FormStart”,AlwaysOnTop属性为.T.,AutoCenter属性为.T.,BorderStyle属性为2-固定对话框,Caption属性为"",ControlBox属性为.F.,MaxButton属性为.F.,MinButton属性为.F.,
Movable属性为.F.,ShowWindow属性为2-作为顶层表单,WindowType属性为1-模式。既是封面,自然要有一个漂亮的底图,此图片可自行用绘图软件制作,大小可自定,只是别忘了在底图上写清软件的名称。底图做好之后,设置封面表单的Picture属性为此图片名即可。
三、显示用户名和用户单位。见过WORD封面的人可能都会注意到其封面上有一提示“本软件使用权属于”,其下面是安装Windows 95时输入的用户名和用户单位,通过对Windows 95的注册表的访问,在Visual FoxPro中也可以实现这一设计。
在‘表单控件’工具条上选择‘标签’并在表单体上点击一下即可生成一个标签,设置它的Name属性为LabelTitle,Caption属性为‘本软件使用权属于:’,Autosize属性为
.T.,BackStyle属性为0-透明。相同方法再制作出两个标签,设置它们的AutoSize属性为.F.,Caption属性为“”,分别设置它们的Name属性为LabelName和LableComp,两标签的大小可自定。具体的摆放位置可视情况而定。
四、编写相应控件过程。
FormSet1的Load过程:
_Screen.Visible = .F.
Public UserName,UserComp,TitleTime
DECLARE INTEGER RegOpenKeyEx IN Win32API ;
INTEGER nKey, STRING @cSubKey, INTEGER nReserved,;
INTEGER nAccessMask, INTEGER @nResult
DECLARE INTEGER RegQueryValueEx IN Win32API ;
INTEGER nKey, STRING cValueName, INTEGER nReserved,;
INTEGER @nType, STRING @cBuffer, INTEGER @nBufferSize
DECLARE INTEGER RegCloseKey IN Win32API ;
INTEGER nKey
UserName = ""
UserComp = ""
lnResult = 0
Buffer = SPACE(128)
BufferSize = LEN(Buffer)
lnError = RegOpenKeyEx(-2147483646,
"Software\Microsoft\Windows\CurrentVersion", 0, 1, @lnResult)
IF lnError = 0
lnType = 0
Buffer = SPACE(128)
BufferSize = LEN(Buffer)
lnError = RegQueryValueEx(lnResult, "Registeredowner", 0,
@lnType, @Buffer, @BufferSize)
IF lnError = 0 AND Buffer <> CHR(0)
* 取得用户姓名
UserName = LEFT(Buffer, BufferSize - 1)
ENDIF
lnType = 0
Buffer = SPACE(128)
BufferSize = LEN(Buffer)
lnError = RegQueryValueEx(lnResult,
"RegisteredOrganization",0,@lnType, @Buffer, @BufferSize)
IF lnError = 0 AND Buffer <> CHR(0)
* 取得用户单位
UserComp = LEFT(Buffer, BufferSize - 1)
ENDIF
ENDIF
=RegCloseKey(lnResult)
FormStart的Activate过程:
TitleTime = DATETIME()
Thisform.LabelName.Caption = UserName
Thisform.LabelComp.caption = UserComp
* 延时3秒
Do While DATETIME() - TitleTime <= 3
Enddo
Thisformset.Release
本过程的最后一句可改为调用应用程序表单即可进入应用程序中。
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.227.121]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.370毫秒