|   ---------------------------------   // 实现关闭窗体时的动态效果   // -------------------------------   // 函数名: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))  |