国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

為Delphi數(shù)據(jù)表格增加色彩

2019-09-08 23:08:56
字體:
供稿:網(wǎng)友
                                                                                                                                                       
                       在DELPHI中經(jīng)常用到網(wǎng)格控件(DBGrid)顯示數(shù)據(jù),網(wǎng)格控件只提供了每一行的顏色屬性,但在實(shí)際應(yīng)用中我們經(jīng)常希望它按某一行某一項(xiàng)的取值不同顯示不同的顏色,甚至在網(wǎng)格中的單位表格項(xiàng)中顯示出圖像等等,下面我們以一個(gè)簡(jiǎn)單的例子來告訴大家怎么做。

  比如我們要求如果春季有退書用紅色表示,如果秋季有退書用黃色表示(圖1)

  

  圖1

  利用DBGrid自繪功能可以很容易地實(shí)現(xiàn)這樣的要求。用戶可以處理DBGrid的OnDrawColumnCell事件,在其中實(shí)現(xiàn)特殊的效果。要判斷記錄是否滿足要求,可以使用DBGrid的DataLink屬性獲得數(shù)據(jù),但DBGrid的DataLink屬性屬于保護(hù)成員,必須在TCustomDBGrid的子類中調(diào)用。

type TMyCustomDBGrid = class(TCustomDBGrid); procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); varsCjts,sQjTs:String;begin    with TMyCustomerDBGrid(Sender) do       begin       Cjts:=DataLink.Fields[5].AsString;       sQjts:=DataLink.Fields[9].AsString;       if sCjts<>''''  then       //春季退書數(shù)量>0的用紅色顯示            Canvas.Brush.Color := clRed       else          if sQjts<>''''  then      //秋季退書數(shù)量>0的用黃色顯示       Canvas.Brush.Color := clYellow          else             Canvas.Brush.Color:=clWhite;      Canvas.Font.Color:=clBlack;            canvas.fillrect(rect);      canvas.textout(rect.left+4,rect.top+4,Column.Field.AsString);      end;end;


  由此方法可以延伸出其它控件的多種修飾方法,比如可以按數(shù)據(jù)項(xiàng)值采用不同的顏色,可以按記錄號(hào)顯示不同的顏色??傊`活應(yīng)用canvas、rect及bitmap等對(duì)象,可以將各種網(wǎng)格裝飾得絢麗多彩。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 渭源县| 山阴县| 九龙县| 麦盖提县| 福清市| 和政县| 枣强县| 两当县| 石台县| 个旧市| 娱乐| 富平县| 富裕县| 木里| 田林县| 贵州省| 余干县| 象山县| 桑日县| 湖口县| 琼结县| 唐海县| 长汀县| 黑水县| 屯留县| 山东省| 延吉市| 台中市| 林西县| 枣庄市| 监利县| 宁德市| 当雄县| 贡山| 巴彦淖尔市| 深圳市| 若羌县| 呼和浩特市| 乌鲁木齐市| 平湖市| 澳门|