网站公告列表

  没有公告

加入收藏
设为首页
在线投稿

您现在的位置: IT知识网 >> IT知识 >> 程序设计 >> Foxpro >> 文章正文

 

  如何使用_Screen对象(1)           

如何使用_Screen对象(1)
作者:佚名 文章来源:不详 点击数: 更新时间:2006-12-1 16:59:48

 

 

只所以在这里把_screen作为技术篇一个单独的问题提出来,是因为作为主窗口的_screen对象相对与其他一般表单,有许多的特殊之处,但是,大家在进行程序设计的时候,无一例外全部都要遇到主窗口的属性设置问题,所以把它单独的作为技术篇中的一个单独题目,也就不足为怪了!

在我想写这篇文章的时候,无意中在“狐友俱乐部”中见到了茉莉花写的一篇关于_screen的文章,所以便来个借花献佛,对于其中一些未提及的问题稍微做了一些补充,以饷大家,让我们向茉莉花表示衷心的感谢!

在VisualFoxPro中充分利用_SCREEN对象,就能对主窗口进行各种操作,如可以动态地改变主窗口的图标、标题、颜色等,也可以通过它引用其它的对象或属性。

   _SCREEN对象(即指主窗口)是从表单类派生出来的,表单中的部分属性、事件和方法在_SCREEN对象也存在,因而可以把主窗口当作表单来操作(但也有所不同,如在_SCREEN中不能像表单那样对LOAD、ACTIVATE等事件添加代码,即不能够为_screen指定事件)。

   下面举例说明如何利用_SCREEN对象:

  1.更改图标和标题

   把VFP窗口的小狐狸图标和“MicrosoftVisualFoxPro”标题,改为你所喜欢的图标和标题,只需执行代码

   _SCREEN.ICON=″你的图标文件名(.ICO)″

   _SCREEN.CAPTION=″你的标题名″

如果需要修改的东西很多,大家也可以用with…endeith进行设定,如:

with _screen

.visible=.t.

.closable=.t.

.controlbox=.t.

.maxbutton=.t.

.minbutton=.t.

.movable=.t.

.top=0

.left=0

.windowstate=2

.caption='建设银行计算机台帐管理系统'

.picture='zhj6.bmp'

.icon='support.ico'

endwith

  2.动态地改变主窗口的图标和标题

   即让主窗口的图标和标题随时间的变化而变化。这就需要在_SCREEN中加入一个Timer类,Timer类是每经过一定的时间(在Interval属性中设定,单位为毫秒)循环地执行其Timer事件中的代码。方法如下:先定义你的Timer类:点“文件/新建/类/新建文件”,这时弹出一窗口,上面有这几项需要填写:“类名”项填新建类名(如MyTimer),“派生于”项选Timer,“来源于”项不用填,“存储于”项填新建类库名(如MyClass)。确定后出现类设计器(很像表单设计器),上有一小闹钟(Timer控件)把其Interval属性设为1000(时间间隔,毫秒),在Init事件中输入代码:

   PUBL NN

   NN=0&&NN为变化的标志变量

   在Timer事件(每隔一定时间执行)输入:

   _SCREEN.ICON=IIF((-1)^NN,″所需加入的图题1″,″图标2″)

   _SCREEN.CAPION=IIF((-1)^NN,″所需加入的标题1″,″标题2″)

   NN=NN+1

   关闭并保存,类建立完毕。

   可视地把该类添到_SCREEN中:由于_SCREEN与表单有所区别,故不能用表单设计器工具来完成拖放类定义,而是用“类浏览器”来完成,寻工具/类浏览器”后,弹出一打开窗口,选择刚才建立的类库文件(MYCLASS),确定后,弹出类浏览器窗口,选中MyTimer类,这时在类浏览器的左上角有一小闹钟,把它拖放到主窗口中,你就会惊奇地发现你的主窗口不再是死气沉沉的了。不信?试试!

  3.利用_SCREEN得到主窗口内包含的表单数量

   执行:?_SCREEN.FORMCOUNT即可

4.在_screen中加入对象(如:图画),举例如下:

_screen.addobject("imge1","quit1") && 建立一副图画

define class quit1 as image

top=-10

left=0

*height=_screen.height-50

*width=_screen.width-50

picture='main_bmp.bmp'

backstyle=0

visible=.t.

* stretch=1

 

procedure click

quit

endproc

enddefine

基于这个例子,上面第2个问题中加入timer类的问题可以这样解决:

_screen.addobject("tmr1","caption1") &&建立一个timer

define class caption1 as timer1

Interval=1000

procedure init

PUBL NN

    NN=0&&NN为变化的标志变量

endproc

 

procedure timer

_SCREEN.ICON=IIF((-1)^NN,″所需加入的图题1″,″图标2″)

   _SCREEN.CAPION=IIF((-1)^NN,″所需加入的标题1″,″标题2″)

   NN=NN+1

endproc

 

enddefine

以上是有关_SCREEN对象的简单阐述,想要你的窗口美化起来,具体的工作还需要你自己去做。

文章录入:bolang    责任编辑:bolang 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最 新 热 门
    相 关 文 章
    使用OSPF路由协议配置的
    配置实例:如何过滤ospf中
    使用 RIP协认处理不连续
    使用RIP协议处理不连续的
    如何检测出你电脑上的间
    承担下一代网络职责的MP
    教你如何配置CISCO路由器
    如何配置Cisco路由器中的
    如何备份CISCO路由器的配
    使用路由器NAT功能接入I
     
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    Copyright© ITZS.NET All Rights Reserved
    QQ:272895858   ICP备案编号:吉ICP备07000044号
    IT知识网 站长:博浪