有段程序看不太懂,请大家帮个忙!先谢谢了! |
尚未結案
|
coldcoffee
一般會員 發表:60 回覆:22 積分:16 註冊:2003-05-23 發送簡訊給我 |
1 with DBGrid1.canvas do
2 begin
3 // 先预设颜色
4 if gdselected in state then // Select光棒停在此Cell
5 begin
6 font.color:=clHighLightText; // 正常的DBGrid颜色
7 Brush.color:=clHighLight; // 正常的DBGrid颜色
8 end
9 else // Select光棒未停在此Cell
10 begin
11 font.color:=clBlack; // 正常的DBGrid颜色
12 Brush.color:=clWhite; // 正常的DBGrid颜色
13 end;
14 // 设定指定Cell的颜色
15 if datacol=1 then // 第二个栏位
16 begin
17 if gdselected in state then // Select光棒停在此Cell
18 begin
19 if (sender as tdbgrid).datasource.dataset.fieldbyname('size').asinteger>=10 then
20 Font.Color:=clred or $888888 // 字变红色加一点白色调(这样反白效果才会好)
21 else
22 Font.Color:=clBlue or $888888 // 字变篮色加一点白色调(这样反白效果才会好)
23 end
24 else // Select光棒未停在此Cell
25 begin
26 if (sender as tdbgrid).datasource.dataset.fieldbyname('size').asinteger>=10 then
27 Font.Color:=clred // 字变红色
28 else
29 Font.Color:=clBlue; // 字变蓝色
30 end;
31 end
32 else if datacol=2 then // 第三个栏位
33 begin
34 if gdselected in state then // Select光棒停在此Cell
35 begin
36 if (sender as tdbgrid).datasource.dataset.fieldbyname('weight').asinteger>=10 then
37 Brush.color:=clred or $404040 // 底色变成红色加一点白色调
38 else
39 Brush.color:=clGreen or $404040 // 底色变成绿色加一点白色调
40 end
41 else // Select光棒未停在此Cell
42 begin
43 if (sender as tdbgrid).datasource.dataset.fieldbyname('weight').asinteger>=10 then
44 Brush.color:=clred // 底色变成红色
45 else
46 Brush.color:=clGreen; // 底色变成绿色
47 end;
48 end;
49 // 一定要执行绘图的动作
50 DbGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,[]);
51 end; 第4行:if gdselected in state then的gdselected、state是什么意思?
第15行:if datacol=1 then的datacol是什么意思?
第19行:if (sender as tdbgrid).datasource.dataset.fieldbyname('size').asinteger>=10 then的tdbgrid是什么意思?
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi:
1.State 表示目前必須 DrawColumn 之狀態,內容說明如下 Value Meaning ----------- ---------------------------------------- gdSelected The cell is currently selected. gdFocused The cell has input focus. gdFixed The cell is in the fixed region of the grid. 2.datacol 表示目前必須 DrawColumn 之欄位 Index if datacol = 1 代表為該 DBGrid 的第二個 Column 3.Sender 是一個 TObject,而 TDBGrid 則是一個 TClass (Sender As TDBGrid) 亦即將 Sender 視同為 TDBGrid,用法與 TDBGrid(Sender) 同---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |