迷路を生成したら、他のプログラムで使えるようにしたいものです。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(); } |