建立資料視窗類實現滑鼠移動到的行變色

2021-06-20 15:01:24 字數 2552 閱讀 9746

1、建立資料視窗類

2、定義instence變數

//奇數行顏色

integer ii_r_odd=255

integer ii_g_odd=255

integer ii_b_odd=255

//偶數行顏色

integer ii_r_even=255

integer ii_g_even=255

integer ii_b_even=255

//當前行顏色

integer ii_r_active=255

integer ii_g_active=255

integer ii_b_active=255

//滑鼠所在行顏色

integer ii_r_mouseover=255

integer ii_g_mouseover=255

integer ii_b_mouseover=255

private:

boolean ib_captured=false

long  il_handle

3、定義外部函式

function long setcapture(long hwnd) library "user32" 

function long releasecapture() library "user32" 

4、event constructor

string s_modistr

string s_color

il_handle=handle(this)

//建立計算列,儲存滑鼠所在行

s_modistr='create compute(band=header alignment="0" border="0" color="33554432" x="9" y="16" height="76" width="320" format="[general]" html.valueishtml="0"  visible="0"  font.face="arial" font.height="-12" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1073741824"'

s_modistr+=' name=c_指標所在行 '

s_modistr+=' expression="0" )'

this.modify(s_modistr)

//設定detail背景顏色計算公式

s_modistr ='datawindow.detail.color="536870912~tif( c_指標所在行 <> currentrow() and c_指標所在行=getrow() ,'

s_color=string(rgb(ii_r_mouseover,ii_g_mouseover,ii_b_mouseover))

s_modistr+=s_color+' ,if(getrow()=currentrow(),'

s_color=string(rgb(ii_r_active,ii_g_active,ii_b_active))

s_modistr+=s_color+' , if(mod(getrow(),2)=1,'

s_color=string(rgb(ii_r_odd,ii_g_odd,ii_b_odd))

s_modistr+=s_color+','

s_color=string(rgb(ii_r_even,ii_g_even,ii_b_even))

s_modistr+=s_color+')) )"'

this.modify(s_modistr)

5、event dwmousemove(pbm_dwnmousemove)

if row>0 then

this.modify( 'c_指標所在行.expression="'+string(row)+'"' )

else

this.modify('c_指標所在行.expression="0"')

end if

this.setredraw( true )

6、event mousemove (pbm_mousemove)

if not ib_captured then

setcapture(il_handle)

ib_captured=true

else

if(xpos<0 or ypos<0) or (xpos>this.width or ypos>this.height) then

ib_captured=false

releasecapture()

this.modify('c_指標所在行.expression="0"')

this.setredraw(true)

end if

end if

該**已在pb9下測試通過。

使用時:將自定義資料視窗物件放入視窗,設定為自己喜愛的顏色。

效果如下:

滑鼠移動到button顏色改變的實現

要實現button需要用到onmouseover與onmouseout方法 示例 滑鼠未移入效果 滑鼠移入後效果 當然,如果直接使用上面的 你能得到的效果其實是這樣的 button的預設顯示樣式 nm use ver this.style.backgroundcolor 即為滑鼠移入時的顏色 nm ...

unity限制滑鼠移動到遊戲視窗外操作

unity小知識點 camera.rect 相機被渲染到螢幕規範化座標中的位置.rect的範圍在 左 下 0到1 右 上 有時候在執行場景時,在當滑鼠移動到遊戲視窗範圍外後,就停止移動或滑動等一系列操作,只需我們在控制模組加一句判斷即可。public camera scenecamera void ...

滑鼠移動到文字,顯示DIV的資訊

頁面檔案 nm use ut hidepopup js檔案 滑鼠移入顯示div function trigger event,pk accnt var html hotelmanager.web.general.acccenter.mainaccount.getweek pk accnt value...