像QQ同樣收起打開的rollout簡潔版

模仿QQ面版自動隱藏和顯示。此處只有頂部隱藏(左右隱藏同理可加)。移動面版到頂邊時自動收起,鼠標通過時自動放下,鼠標離開面版後會再次收起(拖動到屏幕中間時不會收起)。
固然,這個收起放下並不沒有移動的過程,只是窗口位置的即時變化。必定要美化這個功能也能夠用timer來控制y的變化。
這裏窗口大小均可以設成變量來調用。 ide

 

---OO2011
try destroydialog oo catch()
rollout OO "OO2011"
( spa

timer hidew "" interval:400 active:true -- 反映時間可在此調節 get

---- 窗口動做
on oo moved pos do
(
if ((getdialogpos oo)[2] < 1 ) then setdialogpos oo [(getdialogpos oo)[1],-504]  ---當窗口拖動到頂邊時隱藏界面。(也就是面版的Y軸到頂邊時就設定Y軸位置爲隱藏窗口的高度,爲何是-504而不是-600由於面版邊框和要留出的多少有關。)
) 變量

on hidew tick do if (getdialogpos oo)[2] < 0 then  ---若是面版Y軸<0 (判斷面版處於隱藏狀態) im

(
if ( mouse.screenpos[1] as integer >= (getdialogpos oo)[1] and mouse.screenpos[1] as integer <= ((getdialogpos oo)[1] + 240 ) and mouse.screenpos[2] as integer <= 1 )   --當鼠標通過隱藏界面留出部份時。。。
then setdialogpos oo [(getdialogpos oo)[1],1]  --面版位置顯示 移動

) else  ---若是面版爲顯示狀態則。。。 di

(
if (getdialogpos oo)[2] == 1 do  --判斷面版正處在隱藏後喚出的狀態。。(Y軸爲1時,也就是說若是面版被拖到屏幕中不靠頂的話下面的動做無效)
( 時間

if ( mouse.screenpos[1] as integer <= (getdialogpos oo)[1] or mouse.screenpos[1] as integer >= ((getdialogpos oo)[1] + 240 ) or mouse.screenpos[2] as integer >= 510 )  --若是鼠標超出面版範圍後。。。
then setdialogpos oo [(getdialogpos oo)[1],-504]  --面版又隱藏起來 time

)
)
)
createdialog oo 240 480 界面

相關文章
相關標籤/搜索