クリップボードへのグラフィックの切り取り

提供: RAD Studio
移動先: 案内検索

グラフィックとマルチメディアの処理:インデックス への移動

クリップボードへのグラフィックの切り取りは,コピーとまったく同じ処理ですが,ソースからグラフィックが削除されるという点が異なります。

画像からクリップボードへグラフィックを切り取る場合は,最初にクリップボードへのコピーを行い,次に元のグラフィックを消去します。

ほとんどの場合,切り取りに関しては,消去された元のイメージをどのように表示するのかが唯一の問題になります。次のコードのように,その領域を白にするのが一般的な解決策です。次のコードは,メニュー項目[編集 > 切り取り]OnClick イベントにイベントハンドラを結び付けます。



 procedure TForm1.Cut1Click(Sender: TObject);
 var
 ARect: TRect;
 begin
 Copy1Click(Sender);{ クリップボードへ画像をコピー }
 with Image.Canvas do
 begin
 CopyMode := cmWhiteness;{ すべてを白色にコピー }
 ARect := Rect(0, 0, Image.Width, Image.Height);{ ビットマップの四角形を取得する }
 CopyRect(ARect, Image.Canvas, ARect);{ ビットマップをそれ自体にコピーする }
 CopyMode := cmSrcCopy;{ 通常のモードに戻る }
 end;
 end;



 void __fastcall TForm1::Cut1Click(TObject *Sender)
 {
   TRect ARect;
   Copy1Click(Sender);          // クリップボードへ画像をコピー
   Image->Canvas->CopyMode = cmWhiteness; // すべてを白色にコピー
   ARect = Rect(0, 0, Image->Width, Image->Height); // 画像のサイズを取得
   Image->Canvas->CopyRect(ARect, Image->Canvas, ARect); // ビットマップをそれ自体にコピー
   Image->Canvas->CopyMode = cmSrcCopy; // デフォルトモードに戻る
 }



関連項目