delphi 更改DBGrid 顏色技巧

1、根據條件更改某一單元格的顏色

?

[delphi]?view plaincopy
  1. procedure?TMainFrm.First_DGDrawColumnCell(Sender:?TObject;??
  2. ??const?Rect:?TRect;?DataCol:?Integer;?Column:?TColumn;??
  3. ??State:?TGridDrawState);??
  4. begin??
  5. ??if?DM.FirstListStatus.AsString='生產'?then?begin??
  6. ?????First_DG.Canvas.Font.Color:=clGreen??
  7. ???end??
  8. ??else?begin??
  9. ?????First_DG.Canvas.Font.Color:=clRed;??
  10. ??end;??
  11. ??if?DataCol?=?4?then??
  12. ?????First_DG.DefaultDrawColumnCell(Rect,DataCol,Column,State);??
  13. end;??

?

2、多種改變方式

?

[delphi]?view plaincopy
  1. <span?style="color:#000000;">procedure?TMainForm.DBGrid1DrawColumnCell(Sender:?TObject;??
  2. ??const?Rect:?TRect;?DataCol:?Integer;?Column:?TColumn;State:?TGridDrawState);??
  3. var?i?:integer;??
  4. begin??
  5. ??if?gdSelected?in?State?then?Exit;??
  6. //定義表頭的字體和背景顏色:??
  7. ????for?i?:=0?to?(Sender?as?TDBGrid).Columns.Count-1?do??
  8. ????begin??
  9. ??????(Sender?as?TDBGrid).Columns[i].Title.Font.Name?:='宋體';?//字體??
  10. ??????(Sender?as?TDBGrid).Columns[i].Title.Font.Size?:=9;?//字體大小??
  11. ??????(Sender?as?TDBGrid).Columns[i].Title.Font.Color?:=$000000ff;?//字體顏色(紅色)??
  12. ??????(Sender?as?TDBGrid).Columns[i].Title.Color?:=$0000ff00;?//背景色(綠色)??
  13. ????end;??
  14. //隔行改變網格背景色:??
  15. ??if?Query1.RecNo?mod?2?=?0?then??
  16. ????(Sender?as?TDBGrid).Canvas.Brush.Color?:=?clInfoBk?//定義背景顏色??
  17. ??else??
  18. ????(Sender?as?TDBGrid).Canvas.Brush.Color?:=?RGB(191,?255,?223);?//定義背景顏色??
  19. //定義網格線的顏色:??
  20. DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);??
  21. ??with?(Sender?as?TDBGrid).Canvas?do?//畫?cell?的邊框??
  22. ??begin??
  23. ????Pen.Color?:=?$00ff0000;?//定義畫筆顏色(藍色)??
  24. ????MoveTo(Rect.Left,?Rect.Bottom);?//畫筆定位??
  25. ????LineTo(Rect.Right,?Rect.Bottom);?//畫藍色的橫線??
  26. ????Pen.Color?:=?$0000ff00;?//定義畫筆顏色(綠色)??
  27. ????MoveTo(Rect.Right,?Rect.Top);?//畫筆定位??
  28. ????LineTo(Rect.Right,?Rect.Bottom);?//畫綠色的豎線??
  29. ??end;??
  30. end;</span>??



?

?

?

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

?

[delphi]?view plaincopy
  1. Case?DataCol?Mod?2?=?0?of??
  2. ??True:?DbGrid1.Canvas.Brush.Color:=?clBlue;?file://偶數列用藍色??
  3. ?False:?DbGrid1.Canvas.Brush.Color:=?clAqua;?file://奇數列用淺綠色??
  4. End;??
  5. DbGrid1.Canvas.Pen.Mode:=pmMask;??
  6. DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);??

?

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

[delphi]?view plaincopy
  1. Case?DataCol?Mod?2?=?0?of??
  2. True:?DbGrid1.Canvas.Brush.Color:=?clBlue;?file://偶數列用藍色??
  3. False:?DbGrid1.Canvas.Brush.Color:=?clAqua;?file://奇數列用淺綠色??
  4. End;??
  5. If?((State?=?[gdSelected])?or?(State=[gdSelectedgdFocused]))?then??
  6. If?Not?DbGrid1.SelectedRows.CurrentRowSelected?then??
  7. DbGrid1.Canvas.Brush.Color:=clRed;?file://當前選中單元格顯示紅色??
  8. DbGrid1.Canvas.Pen.Mode:=pmMask;??
  9. DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);??

?

5、在數據網格中以紅色突出顯示當前選中的行。

?

?

[delphi]?view plaincopy
  1. 設置DbGrid控件的Options屬性中的dgRowSelect屬性為真,Color屬性為clAqua(背景色)??
  2. 在DbGrid的DrawColumnCell事件中編寫如下代碼:??
  3. ??
  4. if?((State?=?[gdSelected])?or?(State=[gdSelected?gdFocused]))?then??
  5. DbGrid1.Canvas.Brush.color:=clRed;?file://當前行以紅色顯示,其它行使用背景的淺綠色??
  6. DbGrid1.Canvas.pen.mode:=pmmask;??
  7. DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);??

?


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

?

?

[delphi]?view plaincopy
  1. if?((State?=?[gdSelected])?or?(State=[gdSelectedgdFocused]))?then??
  2. begin??
  3. Case?DataCol?Mod?2?=?0?of??
  4. True?:?DbGrid1.Canvas.Brush.color:=clRed;?file://當前選中行的偶數列顯示紅色??
  5. False:?DbGrid1.Canvas.Brush.color:=clblue;?file://當前選中行的奇數列顯示藍色??
  6. end;??
  7. DbGrid1.Canvas.pen.mode:=pmmask;??
  8. DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);??

?


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

?

?

[delphi]?view plaincopy
  1. Case?Table1.RecNo?mod?2?=?0?of?file://根據數據集的記錄號進行判斷??
  2. True?:?DbGrid1.Canvas.Brush.color:=clAqua;?file://偶數行用淺綠色顯示??
  3. False:?DbGrid1.Canvas.Brush.color:=clblue;?file://奇數行用藍色表示??
  4. end;??
  5. if?((State?=?[gdSelected])?or?(State=[gdSelectedgdFocused]))?then?file://選中行用紅色顯示??
  6. DbGrid1.Canvas.Brush.color:=clRed;??
  7. DbGrid1.Canvas.pen.mode:=pmMask;??
  8. DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);??

?

 
 


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

?

?

[delphi]?view plaincopy
  1. Case?Table1.RecNo?mod?2?=?0?of?file://根據數據集的記錄號進行判斷??
  2. True?:?DbGrid1.Canvas.Brush.color:=clAqua;?file://偶數行用淺綠色顯示??
  3. False:?DbGrid1.Canvas.Brush.color:=?clblue;?file://奇數行用藍色表示??
  4. end;??
  5. If?((State?=?[gdSelected])?or?(State=[gdSelectedgdFocused]))?then??
  6. Case?DataCol?mod?2?=?0?of??
  7. True?:?DbGrid1.Canvas.Brush.color:=clRed;?file://當前選中行的偶數列用紅色??
  8. False:?DbGrid1.Canvas.Brush.color:=?clGreen;?file://當前選中行的奇數列用綠色表示??
  9. end;??
  10. DbGrid1.Canvas.pen.mode:=pmMask;??
  11. DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);??

?

一、根據條件更改某航

procedure Tfrm_TicketGet.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (ADOQuery1.FieldByName('kind_name').asstring = '合計' )or( ADOQuery1.FieldByName('kind_name').asstring = '總合計') then
begin
DBGrid1.Canvas.Font.Color:=clred;
dbgrid1.Canvas.Brush.color:=clyellow;
end ;

dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;

?

轉載于:https://www.cnblogs.com/qi123/p/5087128.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458499.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458499.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458499.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mfc中UpdateData的用法

http://blog.csdn.net/ddjj_1980/article/details/51452289 UpdateData(TRUE)——刷新控件的值到對應的變量。(外部輸入值交給內部變量)即&#xff1a;控件的值—>變量。UpdateData(FALSE)—— 拷貝變量值到控件顯示。(變量的最終運算結果值交給外部輸出顯示)即&#xff1a;…

動畫類的層次結構

CASpringAnimation類是CAABasicAnimation的子類 CAPropertyAnimation &#xff1a;是CAAnimation的子類&#xff0c;它支持動畫地顯示圖層的keyPath&#xff0c;一般不直接使用。 iOS9.0之后新增CASpringAnimation類&#xff0c;它實現彈簧效果的動畫&#xff0c;是CABasicAnim…

[原]小命令大作用:modprobe

調整網絡為綁定模式&#xff0c;但啟動時候會報錯&#xff0c;此時執行命令 modprobe bonding 可以解決問題。 之前在磁盤方面遇到問題也是通過modprobe命令解決的&#xff0c;又遇到這個命令&#xff0c;似曾相識。于是看下該命令&#xff1a; Linux命令&#xff1a;modprobe …

sql語句優化之not in

多表關聯想查a表中除去b表的可用not exists 效率比not in 更高 優化后的語句用時0.421秒 select john.*, (case when round((case john.sumcount when 0 then 0 else mycount * 100 / sumcount end), 2) > 100 then 100 else round((case john.sumcount when 0 then 0 else …

setup2go制作安裝程序

QT程序設計完畢時&#xff0c;我們就要發布自己的程序&#xff0c;發布程序有兩種方法&#xff1a;一是靜態編譯&#xff0c;二是制作程序安裝包。 靜態編譯好麻煩&#xff0c;我從來沒有成功過&#xff0c;所以我用了動態編譯方法&#xff0c;設計完成時&#xff0c;用release…

gson-2.2.api簡單

使用gson的tojson和fromjson實現對象和json的轉換 Gson gson new Gson(); // Or use new GsonBuilder().create(); MyType target new MyType(); String json gson.toJson(target); // serializes target to Json MyType target2 gson.fromJson(json, MyType.c…

用戶需求、己、競爭對手的關系

圖一 圖二 圖三 如第一圖所示&#xff1a;現在在市面上的產品基本上都可以歸納為這一方面&#xff0c; 如“用戶需求”是網上購物的需求&#xff0c;以“己”是京東為例子&#xff0c;“己”的…

SharePoint 入門介紹

from&#xff1a;http://www.cnblogs.com/jianyus/archive/2013/01/11/2856963.html 前言&#xff1a;接觸SharePoint兩年有余&#xff0c;從一開始的小白&#xff0c;變成現在的菜鳥&#xff0c;一路走來&#xff0c;學到很多&#xff0c;現在&#xff0c;想把自己知道的東西&…

AJAX-服務器響應

服務器響應 如需獲得來自服務器的響應&#xff0c;請使用 XMLHttpRequest 對象的 responseText 或 responseXML 屬性。 屬性 描述 responseText 獲得字符串形式的響應數據。 responseXML 獲得 XML 形式的響應數據。 responseText 屬性 如果來自服務器的響應并非 XML&#xff0c…

c#下不同命名空間的引用(一個project使用另外一個project的名稱空間)

http://bbs.csdn.net/topics/300089064 兩個命名空間在同一個項目中時&#xff0c;沒有任何問題。 若兩個命名空間不在同一個項目中&#xff0c;則變成兩個程序集之間的互相引用。 程序集之間的引用無所謂循環不循環的問題。 但如果兩個程序集要互相引用&#xff0c;并且兩個…

數據結構比較型排序算法分析及選擇

比較型算法分為五類&#xff1a; 1、插入排序&#xff1a;直接插入排序、折半插入排序、希爾排序&#xff1b; 2、選擇排序&#xff1a;直接選擇排序、堆排序&#xff1b; 3、交換排序&#xff1a;快速排序、冒泡排序&#xff1b; 4、歸并排序&#xff1b; 5、基數排序&#xf…

onreadystatechange 事件

onreadystatechange 事件 當請求被發送到服務器時&#xff0c;我們需要執行一些基于響應的任務。 每當 readyState 改變時&#xff0c;就會觸發 onreadystatechange 事件。 readyState 屬性存有 XMLHttpRequest 的狀態信息。 下面是 XMLHttpRequest 對象的三個重要的屬性&#…

Frequent Pattern 挖掘之二(FP Growth算法)(轉)

FP樹構造 FP Growth算法利用了巧妙的數據結構&#xff0c;大大降低了Aproir挖掘算法的代價&#xff0c;他不需要不斷得生成候選項目隊列和不斷得掃描整個數據庫進行比對。為了達到這樣的效果&#xff0c;它采用了一種簡潔的數據結構&#xff0c;叫做frequent-pattern tree(頻繁…

C# 兩個類之間傳遞數據

1、通過全局變量 2、通過構造函數傳遞參數 3、通過委托實現通過委托例子&#xff1a;WebForm1 向Class1傳遞參數值&#xff1a; // namespace WebApplication2{public partial class WebForm1 : System.Web.UI.Page{//step1.聲明一個委托public delegate void DoSomethingEvent…

可行性研究課后題

題目: 為方便儲戶&#xff0c;某銀行擬開發計算機儲蓄管理系統。儲戶填寫的存款單或取款單由銀行柜臺業務員鍵入系統&#xff0c;如果是存款&#xff0c;系統記錄存款人姓名、住址、存款類型、存款日期、利息等信息&#xff0c;并印出存款單給儲戶;如果是取款&#xff0c;系統進…

jQuery語法

jQuery不是W3C標準&#xff01; jQuery使用CSS選擇器來選取元素。 jQuery語法 一、jury語法是為HTML元素的選取編制的&#xff0c;可以對元素執行某些操作。 基礎語法是&#xff1a;$(selector).action() .美元符號定義jQuery .選擇符&#xff08;selector&#xff09;“查…

Sublime 解決目錄顯示為方塊的問題

2019獨角獸企業重金招聘Python工程師標準>>> 修改Perferences->Settings-User { "font_face": "Consolas Italic", #傳說這個字體比較好看。 "font_size": 15, "ignored_packages": [ "Vintage" ], "dpi…

VS toolTip1控件的使用1

http://blog.csdn.net/Mr_Liyong/article/details/780141381、在工具欄找到“toolTip”控件后拖到窗體后&#xff0c;窗體下方會顯示此控件則拖放成功。 2、單擊此控件右鍵選擇屬性&#xff1a;開始 修改屬性。 3、當添加一個TOOLTIP控件后&#xff0c;在WINFORM界面上所有的控…

python 代碼片段9

#codingutf-8# 字符串指示符號 r表示raw u表示unicodemystringuthis is unicode!--by print mystring# raw表示告訴解釋器不要轉換字符串任何字符filerc:\temp\folder\robots.txt print file# 另一個實用raw的地方是正則表達式# 可以在內放任何的字符串&#xff0c;不需要轉義&…

【TL】【編碼】瞬間移動-百度之星初賽(Astar Round2B)1003-2016.05.22

瞬間移動 Accepts: 1018 Submissions: 3620Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description有一個無限大的矩形&#xff0c;初始時你在左上角&#xff08;即第一行第一列&#xff09;&#xff0c;每次你都可以選擇一個…