クリップボード形式の追加

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

コンポーネント エディタの追加 への移動


デフォルトでは、IDE でコンポーネントが選択された状態で[コピー]を選択すると、そのコンポーネントは Delphi の内部形式でコピーされます。その後は、別のフォームやデータ モジュールに貼り付けることができます。Copy メソッドをオーバーライドすることにより、独自のコンポーネントをさらに別の形式でもクリップボードにコピーすることができます。

たとえば、次の Copy メソッドでは、TImage コンポーネントの画像をクリップボードにコピーできます。この画像は Delphi IDE では無視されますが、他のアプリケーションに貼り付けることができます。

procedure TMyComponent.Copy;
var
  MyFormat : Word;
  AData,APalette : THandle;
begin
  TImage(Component).Picture.Bitmap.SaveToClipBoardFormat(MyFormat, AData, APalette);
  ClipBoard.SetAsHandle(MyFormat, AData);
end;
void __fastcall TMyComponentEditor::Copy(void)
{
WORD AFormat;
int AData;
HPALETTE APalette;
((TImage *)Component)->Picture->SaveToClipboardFormat(AFormat, AData, APalette);
TClipboard *pClip = Clipboard(); // don't clear the clipboard!
pClip->SetAsHandle(AFormat, AData);
}