實戰Delphi資料網格 TDBGrid 色彩特效

2021-08-29 03:44:32 字數 3174 閱讀 8836

delphi中的資料網格控制項(

tdbgrid)對於顯示和編輯資料庫中大量的資料起著十分重要的作用;然而,在使用資料網格控制項的同時,也往往因為**中大量的資料不易區分,而令操作者眼花繚亂。如何提高網格控制項的易用性,克服它的此項不足呢?本文從改變資料網格的

色彩配置角度,提出了一種解決辦法。

以下為資料網格控制項的6種特殊效果的實現方法,至於資料網格控制項與資料集如何連線的方法從略。

1. 縱向斑馬線效果:實現網格的奇數列和偶數列分別以不同的顏色顯示以區別相鄰的資料列。

在dbgrid的drawcolumncell事件中編寫如下**:

case datacol mod 2 = 0 of

true: dbgrid1.canvas.brush.color:= clblue; //偶數列用藍色

false: dbgrid1.canvas.brush.color:= claqua; //奇數列用淺綠色

end;

dbgrid1.canvas.pen.mode:=pmmask;

dbgrid1.defaultdrawcolumncell (rect,datacol,column,state);

2. 縱向斑馬線,同時以紅色突出顯示當前單元格效果:以突出顯示當前選中的字段。

將上述**修改為:

case datacol mod 2 = 0 of

true: dbgrid1.canvas.brush.color:= clblue; //偶數列用藍色

false: dbgrid1.canvas.brush.color:= claqua; //奇數列用淺綠色

end;

if ((state = [gdselected]) or (state=[gdselectedgdfocused])) then

if not dbgrid1.selectedrows.currentrowselected then

dbgrid1.canvas.brush.color:=clred; //當前選中單元格顯示紅色

dbgrid1.canvas.pen.mode:=pmmask;

dbgrid1.defaultdrawcolumncell (rect,datacol,column,state);

上述兩種方法突出了列的顯示效果。

3.在資料網格中以紅色突出顯示當前選中的行。

設定dbgrid控制項的options屬性中的dgrowselect屬性為真,color屬性為claqua(背景色)

在dbgrid的drawcolumncell事件中編寫如下**:

if ((state = [gdselected]) or (state=[gdselected gdfocused])) then

dbgrid1.canvas.brush.color:=clred; //當前行以紅色顯示,其它行使用背景的淺綠色

dbgrid1.canvas.pen.mode:=pmmask;

dbgrid1.defaultdrawcolumncell (rect,datacol,column,state);

4.行突顯的斑馬線效果:既突出當前行,又區分不同的列(字段)。

其它屬性設定同3,將上述**修改為:

if ((state = [gdselected]) or (state=[gdselectedgdfocused])) then

begin

case datacol mod 2 = 0 of

true : dbgrid1.canvas.brush.color:=clred; //當前選中行的偶數列顯示紅色

false: dbgrid1.canvas.brush.color:=clblue; //當前選中行的奇數列顯示藍色

end;

dbgrid1.canvas.pen.mode:=pmmask;

dbgrid1.defaultdrawcolumncell (rect,datacol,column,state);

end;

5.橫向斑馬線, 同時以紅色突顯當前行效果。

其它屬性設定同3,將上述**修改為:

case table1.recno mod 2 = 0 of //根據資料集的記錄號進行判斷

true : dbgrid1.canvas.brush.color:=claqua; //偶數行用淺綠色顯示

false: dbgrid1.canvas.brush.color:=clblue; //奇數行用藍色表示

end;

if ((state = [gdselected]) or (state=[gdselectedgdfocused])) then //選中行用紅色顯示

dbgrid1.canvas.brush.color:=clred;

dbgrid1.canvas.pen.mode:=pmmask;

dbgrid1.defaultdrawcolumncell (rect,datacol,column,state);

6.雙向斑馬線效果:即行間用不同色區分,同時,選中行以縱向斑馬線效果區分不同的列。

其它屬性設定同3,將上述**修改為:

case table1.recno mod 2 = 0 of //根據資料集的記錄號進行判斷

true : dbgrid1.canvas.brush.color:=claqua; //偶數行用淺綠色顯示

false: dbgrid1.canvas.brush.color:= clblue; //奇數行用藍色表示

end;

if ((state = [gdselected]) or (state=[gdselectedgdfocused])) then

case datacol mod 2 = 0 of

true : dbgrid1.canvas.brush.color:=clred; //當前選中行的偶數列用紅色

false: dbgrid1.canvas.brush.color:= clgreen; //當前選中行的奇數列用綠色表示

end;

dbgrid1.canvas.pen.mode:=pmmask;

dbgrid1.defaultdrawcolumncell (rect,datacol,column,state);

上述6種方法分別就資料網格控制項的列和行的

色彩進行了設定,讀者可以根據自己的需要設定特效。

ZRender實現粒子網格動畫實戰

通過上面顯示的效果圖,可以看出,這種效果就是在canvas中生成多個可移動的點,然後根據點之間的距離來確定是否連線,思路比較簡單。實現問題 html id main canvas css main 這裡主要用到的形狀就是circle和line,先引入這兩個元件 zrender zrender gra...

Delphi資料型別

資料型別 1 常用型別 shortint char byte byte,unsigned short smallint short word unsigned short real48 6位元組浮點數 integer,longint int,long cardinal,longword dword ...

Delphi 資料連線規範

建議大家採用另外一種編碼風格,不要在程式中到處都有這種lz程式生成的 begin with qrymain do begin tryclose sql.clear sql.add delete from montask where taskid taskid parambyname taskid a...