一、新建窗口文件
点菜单项“文件-新建”,出现一个模块选择对话框,如下图所示。
选择一个模板后,产生一个窗口,同时产生一个程序文件。
如下图所示,在新产生的窗口上,加一个编辑框组件、一个按钮组件,定义一个功能:按钮1按下时,让编辑框显示“1234”。系统自动生成的程序文件为:
Window Form(Form)
Left=4
Top=4
Width=445
Height=357
EndWin
Unit Edit1(Edit)
Left=64
Top=46
Width=120
Max=100
Min=0
Position=0
Step=1
EndU
Unit Button1(Button)
Left=248
Top=44
OnClick=Button1_OnClick
EndU
Fun Button1_OnClick(Sender)
Edit1.V=1234//编辑框显示
EndFun
不难看出,这个程序文件包含了该窗口的所有信息。上部分,以Window开头定义的是窗口信息,以Unit开头定义的是组件信息。这些都不用写程序,为系统自动产生。
以Fun开头的是函数,在按钮上双击自动产生该函数体,只有这一句“Edit1.V=1234”是自己写的。
许多程序开发工具,将窗口的格式与程序文件分开,不便于程序阅读与移植。Workmake克服这些缺点,一个窗口就是一个程序文件,如果要将该窗口移植到别的程序中,只需要将这个程序文件拷贝到另外的项目文件夹下。
移植在程序设计中相当重要,所谓移植,即以前写过的东西,直接拿过来就可以使用,不需要再费工作量重写一遍。我们用其他开发工具开发程序时,常常会发现移植很困难,特别是窗体部分,往往有好几个文件,一个文件存放格式,一个文件存放代码,还有一个文件存放环境变量,如果环境变量变化了,你的程序就移植不过去。
程序易于阅读也是很重要的,如果程序不易于阅读,几天之后,也许你自己都不能再读懂它,更不用说让别人阅读了。
二、调用窗口常规方法
调用窗口的方法有如下几种:
1、程序文件(也称窗口文件,不含扩展名).Show()
2、程序文件.ShowModal()
3、程序文件.ShowMdi()
第一种方式为通用显示方式。第二种为模式窗口显示方式,返回一个可定义的结果值。第三种为MDI子窗口显示方式。什么是MDI窗口,即一个主窗口含有多个子窗口,子窗口不能超出主窗口的显示范围。
比如,已经写好一个程序文件"Client.w",要显示该程序对应的窗口,调用方法为:
win.client.ShowModal()
或省略写法:
client.ShowModal()
同样,如果调用程序文件里面的函数,写法为:
程序文件.其他函数(变量)
比如,已经写好一个程序文件"Client.w",里面有一个函数"SetPara(p1,p2)",要调用这个函数,写法为:
win.client.SetPara(p1,p2)
或省略写法:
client.SetPara(p1,p2)
建议不要写省略写法,时间长了自己容易忘记,也有可能让别人看不懂。
三、调用窗口的其他方法
1、使用函数WinShowModal(file,winname,"reload")
其中参数定义如下:
file:程序文件名
winname:窗口名
"reload":调用时是否刷新,即当窗口存在时,是否要重新初始化。
2、使用函数WinShow(file,winname,"reload")
其中参数定义如下:
file:程序文件名
winname:窗口名
"reload":调用时是否刷新,即当窗口存在时,是否要重新初始化。
3、使用函数Win.wname.Create(file)
调用该函数时,系统创建一个窗口,不显示,用Win.wname.Show()或Win.wname.ShowModal()显示。
其中参数定义如下:
file:程序文件名。如果不写程序文件名,系统自动找与窗口名wname相对应的文件。如:win.mywin.create(),系统找"mywin.w"文件并打开。
wname:窗口名
4、使用WinCreate(file,wname,"reload")
产生窗口,不显示,用Win.wname.Show()或Win.wname.ShowModal()显示。
其中参数定义如下:
file:程序文件名
wname:窗口名
"reload":调用时是否刷新,即当窗口存在时,是否要重新初始化。
5、使用LoadWin(file,wname,"reload")产生窗口,不显示,用Win.wname.Show()或Win.wname.ShowModal()显示。
其中参数定义如下:
file:程序文件名
wname:窗口名
"reload":调用时是否刷新,即当窗口存在时,是否要重新初始化。
6、使用函数Power_WinShowModal(file,winname,"reload",PowerStr,PowerChar,PowerPo1,PowerPoN)
其中参数定义如下:
file:程序文件名
winname:窗口名
"reload":调用时是否刷新,即当窗口存在时,是否要重新初始化。
PowerStr:权限字符串
PowerChar:权限字符
PowerPo1,PowerPoN:检查权限字符的位置。
比如:Power_WinShow("mywin.w","mywin","reload","TTFFTTFF","T",1,3)
检查权限字符串"TTFFTTFF",字符为"T"时为真,如果第1、3个字符为"T"时,打开窗口名
为"mywin"的窗口,构造窗口的程序是"mywin.w"。
7、使用函数Power_WinShow(file,winname,"reload",PowerStr,PowerChar,PowerPo1,PowerPoN)
其中参数定义如下:
file:程序文件名
winname:窗口名
"reload":调用时是否刷新,即当窗口存在时,是否要重新初始化。
PowerStr:权限字符串
PowerChar:权限字符
PowerPo1,PowerPoN:检查权限字符的位置。
比如:Power_WinShow("mywin.w","mywin","reload","TTFFTTFF","T",1,3)
检查权限字符串"TTFFTTFF",字符为"T"时为真,如果第1、3个字符为"T"时,打开窗口名
为"mywin"的窗口,构造窗口的程序是"mywin.w"。
以上为调用窗口的几种方式,可以根据不同的场合选择使用。