大変初歩的な質問で申し訳ないのですが
Canvas.MoveTo(100, 100);
Canvas.LineTo(200, 100); のようにして
線を描いたのですが
一回描いた線の消し方がわかりません。
clearみたいなことがしたいのですが、
ご教授お願いします。
全部を一度に消すなら(背景が白と仮定)
Canvas.Brush.Color := clWhite;
Canvas.FillRect(0, 0, FWidth, FHeight);
ひとつ前に戻るなら
画像を2枚用意しておいて1枚はリアルタイムに描画するキャンバス用で
もう一枚は一操作前の状態に描画している画像にして、戻りたいときに差
替を行う。
無限Undoのようにしたいなら
操作開始から全ての操作を覚えておいて、戻したい位置までの操作を別の
画像を用意してその画像に対して操作をし、表示している画像と差し替え
るなど。
線をひとつひとつ選択して消すなら
ドローイングソフトのように、全ての線の始点と終点・色・幅等を構造体
やクラスにして保持しておいて消す操作がなされたらそのデータを削除し
て再描画する。
記録して線を引く手続きを用意すると便利ですね
ツイート | ![]() |