セルをクリックすると、ImageListでセルに画像を描画しています。
あるボタンを押下したときに、セルに描画されている画像を消し、すべてのセルをクリアしたいと思います。
どなたか教えてください。
どうぞよろしくお願いします。
少々ブサイクな方法ですが、
フラグを立てておいてフラグがFlaseのときは
何も描画しないようにしたらどうでしょう?
var
Flag :boolean =true;
------------------------------------------
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if Flag then
ImageList1.Draw(StringGrid1.Canvas,Rect.left,Rect.Top,Acol,true);
if (ACol=StringGrid1.ColCount-1) and (ARow=StringGrid1.RowCount-1) then
Flag :=true; //最後のセルのときにフラグをTrueに戻す
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Flag :=false;
StringGrid1.Invalidate;//イメージを消去
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
StringGrid1.InValidate;//イメージを再描画
end;
みんみんさん、レスありがとうございます。
フラグを使って対応するようにしてみます。
ツイート | ![]() |