抱歉我的英文。
我有一些表(来自datasource-> mssql server-> views),我需要在DBGrid中删除/隐藏/分配text
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if gdSelected in State
then begin
with DBGrid1.Canvas do
begin
Brush.Color:=clWhite;
Font.Color:=clWhite;
FillRect(Rect);
end;
end;
end;
但它仅适用于1个单元格:当我单击下一个单元格时,前一个单元格的颜色变为标准(如DBGrid中的另一个单元格)。如何为所有点击的细胞保存细胞颜色? //由于我对Delphi不太了解而感到复杂谢谢!
答案 0 :(得分:0)
我相信这是因为你正在使用gdselected in state。一次只选择一个单元格,因此只使用您的消隐代码绘制该单元格。
你需要在单击一个单元格时设置一个属性(比如set tag = 1,或类似的东西),然后沿着"如果Sender.Tag>行检查该标记。 0然后。我相信发件人本身就是单元格,所以像TControl(发件人).tag或其他一些适当的演员会得到你想要的东西。