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