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

解決


だいだい  2006-12-15 03:20:01  No: 24244

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


みんみん  2006-12-17 19:15:46  No: 24245

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加