Delphi 如何在同一个StringGrid中自定义不同的线条颜色和不同的字体颜色?
我的目标是使用交替颜色的线条自定义StringGrid;使用一种颜色的字母自定义行标题和列标题,使用另一种颜色的字母自定义其他单元格,并;根据其内容,使用特定颜色绘制某些单元格,保持其内容不变 我已尝试更改以下属性设置: TStringGrid.DefaultDrawing、TStringGrid.DrawingStyle、TStringGrid.Canvas.Brush.Color、TStringGrid.Font.Color、TStringGrid.FixedColor、TstringRig.Cells[ACol、ARow]、TStringGrid.Canvas.FillRect和事件:TStringGrid.OnDrawCell&TForm.OnCreate。但都不管用 当我画一条线时,它们都是用相同的颜色绘制的,当我在单元格中包含文本时,其他单元格中的所有文本都是用相同的颜色绘制的 我要做的是: 创建Form1时,StringGrid必须具有以下特征:Delphi 如何在同一个StringGrid中自定义不同的线条颜色和不同的字体颜色?,delphi,Delphi,我的目标是使用交替颜色的线条自定义StringGrid;使用一种颜色的字母自定义行标题和列标题,使用另一种颜色的字母自定义其他单元格,并;根据其内容,使用特定颜色绘制某些单元格,保持其内容不变 我已尝试更改以下属性设置: TStringGrid.DefaultDrawing、TStringGrid.DrawingStyle、TStringGrid.Canvas.Brush.Color、TStringGrid.Font.Color、TStringGrid.FixedColor、TstringRig
- ColCount:=32李>
- 行数:=13李>
- FixedCols:=1李>
- FixedRows:=1李>
- 固定颜色:=深灰色(列=0,行=0)李>
- 固定列填充:=列(1)=“01”、列(2)=“02”、列(3)=“03”、。。。Col(31)=“31/(字体颜色:=clYellow)李>
- 已填充固定行:=第(1)行=一月,第(2)行=二月,第(3)行=三月。。。第(12)行=十二月/(字体颜色:=绿色)李>
- 行必须用交替的颜色填充:=奇数和偶数,如:1、3、5、。。。浅蓝色//和:2,4,6。。。浅灰色李>
- 例如:2020年:
- 一月=单元[1,1]:=“Wed”,单元[2,1]:=“Thu”,单元[3,1]:=“Fri”。。。单元格[31,1]:=“Fri”//(字体颜色:=clWhite)李>
- 二月=单元格[1,2]:=“Sat”,单元格[2,2]:=“Sun”,单元格[3,2]:=“Mon”。。。单元格[29,1]:=“Sat”//(字体颜色:=clWhite);直到十二月。。。(如果更改年份(Edit1),也必须更改)
- 固定列和固定行的字体颜色必须保持为clYellow和clGreen李>
很抱歉,我无法打印任何图片,因为这是我在StackOverflow中的第一份出版物。在StringGrid单元格中使用不同颜色的小示例。您可以使用自己的规则定义颜色
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
cn: TCanvas;
begin
cn := TStringGrid(Sender).Canvas;
if gdFixed in State then
cn.Brush.Color := clYellow
else
cn.Brush.Color := RGB(64 * ACol, 255 - 64 * ARow, Random(256));
cn.FillRect(Rect);
cn.TextOut(Rect.Left + 2, Rect.Top + 2, Format('%d %d', [ ACol, ARow]));
end;
您看过许多使用
OnDrawCell
提供不同单元格颜色的示例吗?有许多使用OnDrawCell和TStringGrid的示例。说你已经尝试了很多东西,但一件也没有尝试过,这似乎令人难以置信。也不清楚你为什么把自己的话格式化成块引号,用来引用别人的话。你能在你的帖子中提供一个你已经厌倦但没有用的例子吗?这能回答你的问题吗?如果我错了,我可能会感到抱歉,但你的帖子似乎是一个家庭作业。为你做家庭作业对你一点好处都没有。此外,没有明确的问题,但我猜您主要是在寻求有关如何更改背景和文本颜色的帮助。以前有人问过这个问题,我把这个问题和这两个问题联系起来。对于其他要求,如如何确定一年/月/周的第一天的工作日以及如何保存和检索假日日期,欢迎您将特定问题作为新帖子发布。如果我问的问题不正确,很抱歉。这是我第一次在Stackoverflow工作,我还在学习这里的工作原理。这并不能完全满足我的需要,但是,我将学习您的示例,并尝试使其适应我的需要。谢谢你的回答。