如何使用 TStringGrid 呈现大量的颜色信息 - 回复 "冷公子" 的问题
2021/5/20 18:25:25
本文主要是介绍如何使用 TStringGrid 呈现大量的颜色信息 - 回复 "冷公子" 的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
如何使用 TStringGrid 呈现大量的颜色信息 - 回复 "冷公子" 的问题"冷公子" 同学需要在 TStringGrid 中通过颜色显示大量信息, 给出的方案是: 建立一个对应的颜色数组.
参考代码:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; type TForm1 = class(TForm) StringGrid1: TStringGrid; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); end; var Form1: TForm1; implementation {$R *.dfm} const ColNum = 6; //列数 RowNum = 5; //行数 ColorDefault = clWhite; //默认颜色 var colorArray: array of array of TColor; //颜色数组 procedure TForm1.FormCreate(Sender: TObject); var i,j: Integer; begin {初始化颜色数组} SetLength(colorArray, ColNum, RowNum); for i := 0 to ColNum - 1 do for j := 0 to RowNum - 1 do colorArray[i,j] := ColorDefault; {初始化 StringGrid} StringGrid1.ColCount := ColNum + 1; StringGrid1.RowCount := RowNum + 1; for i := 1 to StringGrid1.ColCount - 1 do StringGrid1.Cells[i, 0] := Format('Col%d', [i]); for i := 1 to StringGrid1.RowCount - 1 do StringGrid1.Cells[0, i] := Format('Row%d', [i]); end; {StringGrid1 的 OnDrawCell 事件: 绘制颜色} procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if Length(colorArray) < 1 then Exit; if (ACol = 0) or (ARow = 0) then Exit; if colorArray[ACol-1, ARow-1] = ColorDefault then Exit; with TStringGrid(Sender).Canvas do begin Brush.Color := colorArray[ACol-1, ARow-1]; FillRect(Rect); end; end; {颜色呈现测试} procedure TForm1.Button1Click(Sender: TObject); begin colorArray[1,2] := clRed; colorArray[1,3] := clBlue; StringGrid1.Refresh; end; end.
posted on 2011-05-16 15:16 万一 阅读(3988) 评论(6) 编辑 收藏
这篇关于如何使用 TStringGrid 呈现大量的颜色信息 - 回复 "冷公子" 的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-21订单系统资料入门教程:轻松管理你的订单
- 2024-09-21Java部署资料:新手入门教程
- 2024-09-21Java部署资料:新手入门教程
- 2024-09-21Java订单系统资料:新手入门教程与实战指南
- 2024-09-21Java管理系统资料入门教程
- 2024-09-21从零开始学习Java监控系统资料
- 2024-09-21Java就业项目资料:新手入门的必备教程
- 2024-09-21Java全端资料:初学者指南
- 2024-09-21Java全栈资料入门教程及资源汇总
- 2024-09-21Java日志系统资料入门教程