• ベストアンサー

画像の連続表示

Borland c++ builder を使ってプログラミングをしています。 画像を連続して表示(GIFアニメみたいなもの)させたいのですが、方法が分からず、いろいろサイトを回ってみましたがいまいちよく分かりません。 私はまったくのプログラミング初心者なので、どうか助言よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 64ema
  • ベストアンサー率44% (4/9)
回答No.3

先日回答しました64emaです。 どのあたりがうまくいかないのでしょうか? もう少し詳しく説明いただけないでしょうか。 それと補足ですが、 //TImageList番号の範囲 if(pno >= TImageListの最大値)のところと、 //noの値を表示 ImageList1->Draw(TImage2->Canvas, 50, 50, pno); pnoではなくnoです。 間違えてごめんなさい。 (例)の部分は、TTimerコンポーネントのOnTimerイベントに記入されていますか?

その他の回答 (2)

  • 64ema
  • ベストアンサー率44% (4/9)
回答No.2

Bitmapファイルを使って、表示する仕方なら。 つかうコンポーネントはTImageListとTImage(2個),TTimerです。あと、Timer1Timerイベントハンドラを使うと表示できます。 (例) //TImageList番号を更新 ++no; //TImageList番号の範囲 if(pno >= TImageListの最大値) no = TImageListの最小値;   //ブラシ等でTImage2を塗りつぶす  TImage2->Canvas->FillRect(Rect(0,0,100,100);  //noの値を表示 ImageList1->Draw(TImage2->Canvas, 50, 50, pno); //表画面へ表示 TImage1->Canvas->CopyRect( TImage1->Canvas->ClipRect, TImage2->Canvas, TImage1->Canvas->ClipRect ); TImage1は表示、TImage2は非表示(プロパティ)を設定する。 あとTImageを使わないで、TBitmap を使う方法もあります。(C++ビルダー6でゲーム等作成時に使っています)

roki321
質問者

補足

遅れながら、回答ありがとうございます。 ですが、これを元に自分でやってみたのですが うまくいきません。よろしければ、(例)の部分を もう少し詳しく書いていただけないでしょうか? お願いします。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アニメーションを行いたいの? >GIFアニメみたいなもの  ↑  SetTimer() でタイマーをセットして WM_TIMER メッセージで静止画を連続的に  コマ送りすればよいのではないのでしょうか。  WM_TIMER メッセージで BitBlt() などでクライアント領域に画像を転送すればよい。  カウンタ変数を利用して繰り返せばよい。 ・以上。

関連するQ&A

専門家に質問してみよう