powerbuilder中只有視窗和富文字有mouse事件外,其他都沒有
powerbuiler中沒有滑鼠移入移出的直接事件,需要我們自己定義
1.首先需要定義乙個結構,用來儲存滑鼠的座標(position)
2.宣告兩個全域性外部函式
3.新增timer
在在視窗的open事件或者某個觸發事件中新增如下**:
timer(0.1)//設定計時器,計時間隔為0.1秒
4.在視窗的timer事件中新增如下**
position mypa
getcursorpos(mypa)//獲取當前游標位置
screentoclient(handle(this),mypa)//轉化為客戶區表示
integer li_xpos,li_ypos
li_xpos = mypa.xpos
li_ypos = mypa.ypos
st_2.text = string(li_xpos) + ',' + string (li_ypos)
integer li_dww,li_dwh
li_dww = this.tv_parentid.width//獲取資料視窗的width屬性(單位是pb units)
li_dwh = this.tv_parentid.height//獲取資料視窗的height屬性(單位是pb units)
li_dww = unitstopixels(li_dww,xunitstopixels!)//把用pb units為單位的width轉化為用pixels為單位
li_dwh = unitstopixels(li_dwh,yunitstopixels!)//把用pb units為單位的height轉化為用pixels為單位
st_3.text = string(li_dww) + ',' + string (li_dwh)
integer li_dwx,li_dwy
li_dwx = this.tv_parentid.x//獲取資料視窗的x屬性(與視窗左邊界的距離,單位是pb units)
li_dwy = this.tv_parentid.y//獲取資料視窗的y屬性(與視窗上邊界的距離,單位是pb units)
li_dwx = unitstopixels(li_dwx,xunitstopixels!)//把用pb units為單位的x轉化為用pixels為單位
li_dwy = unitstopixels(li_dwy,yunitstopixels!)//把用pb units為單位的y轉化為用pixels為單位
st_4.text = string(li_dwx) + ',' + string (li_dwy)
if li_xpos < li_dwx or li_ypos < li_dwy or li_xpos > li_dwx + li_dww or li_ypos > li_dwy + li_dwh then
w_departmentdetail.backcolor=rgb(0, 0, 255)//游標在控制項外,背景為為藍色
else
w_departmentdetail.backcolor=rgb(255, 0, 0)//游標在控制項內,背景為紅色
end if
5.效果圖
中間的灰色區域是我的資料視窗tv_department
右側的三行數分別為:st_2,st_3,st_4
powerbuilder日期函式
pb系統函式 之 日期時間函式day 功能得到日期型資料中的號數 1到31之間的整數值 語法day date 引數date 要得到號數的日期值返回值 integer。函式執行成功時返回號數 1到31之間的整數值 如果date引數的值為null,則day 函式返回null。dayname 功能得到指定...
PowerBuilder常用技巧
1 怎樣對分組裡的行加上序號,要求每個組裡行的序號從1開始!datawindow物件,用計算域 做分組組號 cumulativesum if 分組列名 1 分組列名 0 0,1 for all 做組內編號 getrow first getrow for group 1 1 2 去掉分組資料視窗的分頁...
PowerBuilder 未公開函式
原文 已知乙個dw中的某列的列名 在字串變數中 以獲得這個列物件的dwo 方法是 dwobject ldwo use,ldwo name ldwo use dw 1.object ldwo name ldwo use.get attribute name false 這樣就可以在用setitem 設...