StringGridのセルに描画したイメージをクリアするには?

解決


だいだい  2006-12-14 18:20:01  No: 24244  IP: 192.*.*.*

セルをクリックすると、ImageListでセルに画像を描画しています。
あるボタンを押下したときに、セルに描画されている画像を消し、すべてのセルをクリアしたいと思います。
どなたか教えてください。
どうぞよろしくお願いします。

編集 削除
みんみん  2006-12-17 10:15:46  No: 24245  IP: 192.*.*.*

少々ブサイクな方法ですが、
フラグを立てておいてフラグが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;

編集 削除
だいだい  2006-12-18 13:03:23  No: 24246  IP: 192.*.*.*

みんみんさん、レスありがとうございます。
フラグを使って対応するようにしてみます。

編集 削除