クリップボード形式の追加
コンポーネント エディタの追加 への移動
デフォルトでは、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); }