クリップボードへの書き出し

迷路を生成したら、他のプログラムで使えるようにしたいものです。BorlandのC++Builder 6でしか使えない手法かもしれませんが、以下の様にしてクリップボードへの書き出しが出来ます。

基本的に、Clipboard()->Open()Clipboard()->Close()の間に、クリップボードへ書き出すデータを登録します。図形であればClipboard()->Assign(イメージ)、テキストであればClipboard()->SetTextBuf(テキスト)で登録できます。

 void __fastcall TForm1::cut(TObject *Sender)
{
    // 複数の項目をクリップボードに追加する処理の開始
    Clipboard()->Open();

    // METAメタファイル
    {
        // メタファイルを作る
        Graphics::TMetafile *meta =  new Graphics::TMetafile();
        // メタファイルの大きさを設定する
        meta->Width  =  myMazeWidth;
        meta->Height =  myMazeHeight;
        // メタファイルの Canvas を作る 参照デバイスはスクリーン;
        TMetafileCanvas *metac =  new TMetafileCanvas(meta, 0);
        // メタファイルに描画する
        myMazeDraw(metac);
        // Canvas を閉じ、図形を確定する
        delete metac;
        //メタファイルをクリップボードへ送る
        Clipboard()->Assign(meta);
        delete meta;
    }

    // ビットマップ
    {
        // ビットマップを作る
        Graphics::TBitmap *bitmap = new Graphics::TBitmap();
        // ビットマップの大きさを設定する
        bitmap->Width  =  myMazeWidth;
        bitmap->Height =  myMazeHeight;
        // ビットマップに描画する
        myMazeDraw(bitmap->Canvas);
        // ビットマップをクリップボードへ送る
        Clipboard()->Assign(bitmap);
        delete bitmap;
    }

    //テキスト
    {
        // 文字列バッファを作る
        char *buf = (char *)malloc(textMazeSize);
        // 文字列に描画する
        myMazeWrite(buf);
        // 文字列をクリップボードへ送る
        Clipboard()->SetTextBuf(buf);
    }

    // クリップボードに追加終了
    Clipboard()->Close();
}

迷路トップ 記述内容について一切保障しません。リンクは自由に行ってかまいません。
Since 2005/9/24, Presented by Ishida So