
void __fastcall TForm1::Timer1Timer(Object* Sender)
{
a=?;
b=?;
c=?;
for (int y= 1; y<4; ++y){
char z[3][1];
z[1][1]='a';
z[2][1]='b';
z[3][1]='c';
Form1->Image1->Picture->Bitmap->LoadFromResorceName((int)HInstance,"z[y][1]");
}
}
Image1にa→b→cと一秒間隔で順番に画像を出力したいのです。
?の部分に画像イメージを割り当ててforでまわせばいいと思ったのですがどう記述すれば割り当てられるのかが分かりません。
それと、この書き方でImage1に順番に出力できるのでしょうか。教えてください。
No.3ベストアンサー
- 回答日時:
使うコンポーネントはImageが2つとタイマとImageListです。
ImageListには4つのBitmapをセットします。pno,cx,cyはヘッダーのprivateにint形変数で宣言します。
(例)
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form1->ClientHeight = 300;
Form1->ClientWidth = 300;
Image1->Left = 0;
Image1->Top = 0;
Image1->Width = 300;
Image1->Height = 300;
Image2->Width = 300;
Image2->Height = 300;
//キャラクタの表示初期番号
pno = 0;
//表示場所
cx = 50;
cy = 20;
//タイマイベント開始
Timer1->Enabled = true;
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//キャラクタの番号をカウントする
++pno;
//キャラクタの番号チェック
if(pno >= 4)
pno = 0;
//Image2を更新する
Image2->Canvas->FillRect(Rect(0,0,300,300));
//キャラクタを表示
ImageList1->Draw(Image2->Canvas, cx, cy, pno);
//Image1へコピーする
Image1->Canvas->CopyRect(
Image1->Canvas->ClipRect,
Image2->Canvas,
Image1->Canvas->ClipRect
);
}
No.2
- 回答日時:
表示する画像(Bitmap)の大きさはどれぐらいでしょうか?
64X64ぐらいでしたらTImageListを使えます。
640X480ぐらいでしたら、TImage(3つ)または、TBitmapオブジェクト(3つ)を使えますが。
No.1
- 回答日時:
いや、そのコードでは不味いです、かなり(苦笑。
どこがどう不味いのかを一から全部説明するのはめんどくさいので、ご期待のコードの見本を示します。
//image0.bmp, image1.bmp, image2.bmpの3種の画像ファイルをForm1上のImage1に1秒おきに表示する。
//Timer1はIntervalが1秒に設定されているとする。
//Form1のヘッダ内のprivate:以下に
int image_no; //現在表示されている画像番号を管理
Graphics::TBitmap* gazou[3];
//From1のコンストラクタ内で
image_no = 0;
for ( int n=0; n<3; n++ ) {
gazou[n] = new Graphics::TBitmap;
gazou[n]->LoadFromFile( Format( "image%d.bmp", ARRAYOFCONST((n)) ) );
}
Image1->Picture->Assign( gazou[0] );
//Form1::Timer1のOnTimerEvent内で
if ( image_no < 2 )
++image_no;
else
image_no = 0;
Image1->Picture->Assign( gazou[image_no] );
//Form1のデストラクタないしOnDestroyイベント内で
for ( int n=0; n<3; n++ )
delete gazou[n]; //後始末を忘れない
以上です。
VCLのFormatはちょっと使い方に癖のあるメソッドなので、よく判らなくても気にしないでください。なんかしらんけどこうやって使うんだな、で覚えといてください。
それより画像ファイルの読み込みと、それをTImageに表示する手順を飲み込みましょう。
あと、image_no、gazou[]をForm1のメンバにしているのがなぜか判りますか?
これが判らないようでしたら、C++の入門書を1冊きちんと仕上げることをお勧めします。
Borland C++ BuilderはC++の開発環境としては非常に敷居の低いものですが、さすがにC++の基本が判ってないと使えませんよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Illustratorで文字と画像を流し...
-
透過PNGが透過されない!!
-
phpのheader("Location:#pos")...
-
PHPのif文でその処理を途中で抜...
-
Apache 2.4でphp-5.3を使いたい...
-
phpの中でphpを書けないか
-
require_once()でファイルが読...
-
header(Location:~)で$_SESS...
-
さくらインターネットでメール...
-
フォームで戻った際に入力済み...
-
PHPでメールを受信するには?
-
php4とphp5での数値の取り扱い...
-
PEAR(Image_QRCode)のエラー
-
テレメールとは?
-
再度、xamppにおけるjpgraphの...
-
<A href ~ と一緒に値を渡すには
-
PHP版のPDFlibのインストール
-
【PHP】tmp_nameの命名規約につ...
-
PHPからMSSQLへの接続結果の文...
-
phpのextension_dirを複数指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
SQLiteに画像を格納したい
-
拡張子php画像をjpg画像等に変...
-
Illustratorで文字と画像を流し...
-
手作業で埋め込んだ、UserForm1...
-
PythonのTkinter詳しい方へ。画...
-
VBAでJPGサイズ変更
-
pictureboxに表示した画像のフ...
-
「imagejpeg」(GD)で作成した...
-
VBAのコードを教えてください
-
C#とJavaで、MP3タグの画像を表...
-
透過PNGが透過されない!!
-
phpMyAdminに画像を保存できない
-
PHP getimagesize();
-
wordpressサイトにて、画像ウィ...
-
libpngでpng操作がうまくいかない
-
Wordpressの条件で複数画像を表...
-
'member_picture/'に/がありま...
-
php,mysqlにて画像パス保存/表...
-
DBからPHP出力された画像の情報...
おすすめ情報