使資料視窗中的被選中行具有更好的外觀
大家都知道,在選擇資料視窗中的某一行時,如果使用pb提供的選擇函式SelectRow(),那麼的外觀真是不能恭維,單調而古板的藍色背景,可能和您的漂亮而生動的應用程式格格不入。有沒有辦法改變呢?當然有囉,請聽我慢慢道來。
改變某一行的背景比較簡單,改變每一列的背景屬性(backgroundcolor)即可,可要根據滑鼠選擇情況自動改變,並可以返回被選中的行可能還需要一定的技巧。下面分單行選擇和多行選擇分辨說明。
單行選擇
單行選擇比較簡單,我們只要將所有欄位的背景色的表示式改為:
if(GetRow()=CurrentRow(),RGB(255,126,0),RGB(0,0,0))
其中第一個顏色為被選中的顏色,第二個顏色未被選中的顏色。然後用GetRow()代替GetSelectedRow()函式來得到被選中的行。
多行選擇
多行選擇比較複雜,如果單純依靠改變資料視窗的屬性沒法實現,我們必須使用資料視窗屬性和程式碼結合起來才能實現
首先,改變資料視窗的SQL語句,增加一個計算欄位:0 as flag,Select 語句改為:
Select col1,col2 ,1 as flag from tablename where .....,
當返回資料視窗painter時,您就會發現多了一個欄位flag,我們就是利用這個欄位儲存行被選中的資訊。
其次,修改各個欄位的背景顏色屬性,設定為:if(flag=1,RGB(255,126,0),RGB(255,255,255))
第三:在資料視窗控制元件中,增加對clicked 事件的處理,程式碼如下:
if row<1 then return // setredraw(false)
if this.o b j e c t.flag[row]=1 then //如果該行被選中,撤銷選擇,否則選中該行
this.Object.flag[row]=0
else
this.Object.flag[row]=1
end if
setredraw(true)
您還可以定製本選中行的字型,文字屬性等等。原理相同,不再贅述。
改變某一行的背景比較簡單,改變每一列的背景屬性(backgroundcolor)即可,可要根據滑鼠選擇情況自動改變,並可以返回被選中的行可能還需要一定的技巧。下面分單行選擇和多行選擇分辨說明。
單行選擇
單行選擇比較簡單,我們只要將所有欄位的背景色的表示式改為:
if(GetRow()=CurrentRow(),RGB(255,126,0),RGB(0,0,0))
其中第一個顏色為被選中的顏色,第二個顏色未被選中的顏色。然後用GetRow()代替GetSelectedRow()函式來得到被選中的行。
多行選擇
多行選擇比較複雜,如果單純依靠改變資料視窗的屬性沒法實現,我們必須使用資料視窗屬性和程式碼結合起來才能實現
首先,改變資料視窗的SQL語句,增加一個計算欄位:0 as flag,Select 語句改為:
Select col1,col2 ,1 as flag from tablename where .....,
當返回資料視窗painter時,您就會發現多了一個欄位flag,我們就是利用這個欄位儲存行被選中的資訊。
其次,修改各個欄位的背景顏色屬性,設定為:if(flag=1,RGB(255,126,0),RGB(255,255,255))
第三:在資料視窗控制元件中,增加對clicked 事件的處理,程式碼如下:
if row<1 then return // setredraw(false)
if this.o b j e c t.flag[row]=1 then //如果該行被選中,撤銷選擇,否則選中該行
this.Object.flag[row]=0
else
this.Object.flag[row]=1
end if
setredraw(true)
您還可以定製本選中行的字型,文字屬性等等。原理相同,不再贅述。
相關文章
- Android ListView中獲取選中行資料的方法AndroidView
- Android ListView中獲取修改選中行資料的方法AndroidView
- 如何使夜遊專案更具有參觀性
- 讓您的Eclipse具有千變萬化的外觀Eclipse
- 新增選單的視窗
- 利用BCB編寫具有"磁性"特徵的視窗 (轉)特徵
- DataGridView如何獲取選中行資料並更新View
- Listview獲取選中行的值View
- 視窗被攔截的解決方法
- Oracle HRMS選單中“禁用多個視窗”選單項的作用?Oracle
- 【PB】動態新增資料視窗列中下拉選單的內容
- 資料視覺化可以利用的工具有哪些?視覺化
- mysql視窗函式中的滑動視窗MySql函式
- 資料庫中的悲觀鎖和樂觀鎖資料庫
- 如何使資料庫中取出的資料保持原有格式(轉)資料庫
- 改變UITableView選中行高亮的顏色UIView
- 如何取出Gridview選中行的數值View
- pb9 資料視窗的計算列
- PB資料視窗難得一見的技巧
- pb資料視窗型別型別
- MFC TabControl外掛 非對話方塊類中獲得主視窗和子視窗的指標指標
- easyui datagrid 禁止選中行UI
- Win10系統開啟傳統控制皮膚的“顏色和外觀”設定視窗的方法Win10
- Tensorflow 視窗時間序列資料的處理
- 如何總是在新視窗中開啟資料夾?
- 資料視覺化“資訊傳達”和“視覺美觀”的天平兩端,你選擇站哪邊?視覺化
- Duilib中讓彈出視窗整體能被拖動的兩種方法UI
- 關於父視窗獲取跨域iframe子視窗中的元素跨域
- powerbuilder crosstab資料視窗問題UIROS
- Stats渲染資料統計視窗
- 15款最好的 jQuery Modal(模態視窗)外掛jQuery
- 點選彈出帶有遮罩的視窗效果遮罩
- PHP中的facade pattern(外觀模式)PHP模式
- 視覺化中的資料視覺化
- js具有跟隨彈性效果的網頁右下角視窗程式碼JS網頁
- 把資料做得更好看2——Echarts柱狀圖的組合擴充和選區聚焦(Python資料視覺化)EchartsPython視覺化
- [探索]怎樣讓 JS - API 具有更好的實用性JSAPI
- JavaScript中的Window物件(開啟新的視窗)JavaScript物件