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毫秒