一个stringgrid1 和一个表table1,表的字段数及记录数与stringgrid1的列、行一一对应。
要求:通过对stringgrid1每一格CELLS设置背景颜色后,保存到表table1中。下次打开时从表table1中读取设置的颜色数据并对所对应的单元格设置背景颜色。
已找了几小时的资料,都没找到答案,请高手帮忙解决啊。
要求:通过对stringgrid1每一格CELLS设置背景颜色后,保存到表table1中。下次打开时从表table1中读取设置的颜色数据并对所对应的单元格设置背景颜色。
已找了几小时的资料,都没找到答案,请高手帮忙解决啊。
声明全局变量
M:integer=-1;
N:integer=-1;
cltemp:Tcolor; 更改CELLS颜色需要在DrawCell事件中 假设StringGrid1.cells{0,X}是索引字段
with StringGrid1 do
begin
if (ACol = M) and (ARow =N) then
begin
Canvas.Brush.Color := cltemp;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[M, N]);
end;
end;执行
M:=1;
N:=3;
cltemp:=clYellow;
StringGrid1.Invalidate; 就可以改颜色了
adoquery.close;
adoquery.sql.text:='update 表 set color字段='+inttostr(cltemp)+' where 索引字段='+StringGrid1.cells{0,N};
adoquery.execsql; 同时保存颜色
在第一次读取数据加载进StringGrid1的时候 可以在DrawCell里当个判断
按照cells[0,N]的值 读取数据表里的对应color值
用 Canvas.Brush.Color := 颜色;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[X, Y]); 修改
再细说一下功能要求:用一个stringgrid1作为数据录入,因为在这个stringgrid里是分区域的,不同
的区域显示不同的背景以提醒用户。
为了实现这个功能,我用两个表单:一个表单(Form1)实现对单元格背景的设置并保存到表table1中;
另一个表单(FORM2)是数据录入,但这个表单(Form2)的stringgrid1的单元格背景必须从表table1中读取并显示以提醒用户。希望高手帮忙啊。