中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
窗体动态效果的实现
作者:kevin218 时间:2002-05-05 11:31 出处:互联网 责编:chinaitpower
              摘要:窗体动态效果的实现

    最近用pb做了一个触摸屏的程序,项目组要求窗口显示关闭的时候有点动态效果,于是我就写了如下的程序,供大家参考借鉴。

-------------------------------------------------------------------------------------
// 实现关闭窗体时的动态效果
// ---------------------------------------------------------
// 函数名:gf_closequery
// 参数说明:
//         window    window类型,调用窗口的名字
//         closetype integer类型,窗口关闭方式,value = 0~10
// ---------------------------------------------------------
// 申明局部变量
int li_x ,li_y,li_width,li_height,li_ceny,li_cenx,li_xminusy,li_wminush
Integer li_gd

// 取出当前窗口的坐标值、大小值
li_x = window.x
li_y = window.y
li_width = window.width
li_height = window.height

// 设置窗体关闭前的动画效果
// 关键是看哪个值发生了变化——x、y、h、w
CHOOSE CASE closetype
 CASE 0      // closetype = 0,从下到上逐渐消失
  for li_gd = li_height to 0 step -1
   window.height = li_gd
   window.show()
  next
 CASE 1      // closetype = 1,从上到下逐渐消失
  for li_gd = li_y to li_height+li_y step 1
   window.y = li_gd
   window.height = li_height+li_y - li_gd
   window.show()
  next
 CASE 2      // closetype = 2,从右到左逐渐消失
  for li_gd =  li_width to 0 step -1
   window.width = li_gd
  next
 CASE 3      // closetype = 3,从左到右逐渐消失
  for li_gd =  li_x to li_x+li_width step 1
   window.x = li_gd
   window.width = li_x+li_width - li_gd
   window.show()
  next
 case 4      // closetype = 4,从上下向中间挤压逐渐消失
  li_ceny = li_y+li_height/2
  for li_gd = li_y to li_ceny step 1
   window.y = li_gd
   window.height = li_height - 2*(li_gd - li_y)
  next
 case 5      // closetype = 5,从左右向中间挤压逐渐消失
  li_cenx = li_x+li_width / 2
  for li_gd = li_x to li_cenx step 1
   window.x = li_gd
   window.width = li_width - 2*(li_gd - li_x)
  next
 case 6      // closetype = 6,从左上->右下
  for li_gd = li_y to li_height+li_y step 1
   window.y = li_gd
   window.height = li_height+li_y - li_gd
   if window.x < li_x + li_width then
    window.x = li_x + (li_gd - li_y)
   else
    window.x = li_x + li_width
   end if
   if window.width > 0 then
    window.width = li_x+li_width - window.x
   else
    window.width = 0
   end if
  next
  window.x = li_x + li_width
  window.y = li_height+li_y
  window.width = 0
  window.height = 0
  window.show()
 case 7      // closetype = 7,从右下->左上
  for li_gd = li_height to 0 step -1
   window.height = li_gd
   if window.width > 0 then
    window.width = li_width - (li_height - li_gd)
   else
    window.width = 0
   end if
  next
  window.x = li_x
  window.y = li_y
  window.width = 0
  window.height = 0
  window.show()
 case 8      // closetype = 8,从右上->左下
  for li_gd = li_y to li_height+li_y step 1
   window.y = li_gd
   window.height = li_height+li_y - li_gd
   if window.width > 0 then
    window.width = li_width - (li_gd - li_y)
   else
    window.width = 0
   end if
  next
  window.x = li_x
  window.y = li_height+li_y
  window.width = 0
  window.height = 0
  window.show()
 case 9      // closetype = 9,从左下->右上
  for li_gd = li_x to li_x+li_width step 1
   window.x = li_gd
   window.width = li_width +li_x -li_gd
   if window.height > 0 then
    window.height = li_height -(li_gd - li_x)
   else
    window.height = 0
   end if
  next
  window.x = li_x+li_width
  window.y = li_y
  window.width = 0
  window.height = 0
  window.show()
 case 10      // closetype = 10,从四面到中间
  li_ceny = li_y+li_height/2
  li_cenx = li_x+li_width / 2
  for li_gd = li_y to li_ceny step 1
   window.y = li_gd
   window.height = li_height - 2*(li_gd - li_y)
   if window.x < li_x + li_cenx then
    window.x = li_x + (li_gd - li_y)
   else
    window.x = li_x + li_cenx
   end if
   if window.width > 0 then
    window.width = li_width - 2*(li_gd - li_y)
   else
    window.width = 0
   end if
  next
  window.x = li_cenx
  window.y = li_ceny
  window.width = 0
  window.height = 0
  window.show()
 case else
  window.show()
  window.width = li_width
  window.height = li_height
  window.x = li_x
  window.y = li_y
END CHOOSE
return 0
***********************************
// 调用该函数在窗体的 closequery 事件中
gf_closequery (w_main,mod(integer(string(now(),"ss")),11))
-------------------------------------------------------------------------------------
    上面是关闭时的效果,窗体打开时的动态效果的语句跟上面的差不多,在此就不写啦,如果有需要的可以告诉我,我单独发送。谢谢。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有