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

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

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


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

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

Delphi:

procedure TMyComponent.Copy;
var
  MyFormat : Word;
  AData,APalette : THandle;
begin
  TImage(Component).Picture.Bitmap.SaveToClipBoardFormat(MyFormat, AData, APalette);
  ClipBoard.SetAsHandle(MyFormat, AData);
end;

C++:

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);
}