关于窗口

来源:互联网 发布:杭州网络推广公司 编辑:程序博客网 时间:2024/05/21 09:45

一、新建窗口文件

点菜单项“文件-新建”,出现一个模块选择对话框,如下图所示。


选择一个模板后,产生一个窗口,同时产生一个程序文件。

如下图所示,在新产生的窗口上,加一个编辑框组件、一个按钮组件,定义一个功能:按钮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"。

 

以上为调用窗口的几种方式,可以根据不同的场合选择使用。