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で質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語 コードを書いたのですが上手く実行出来なかったです。どこが間違ってますか? 【作成したいもの】 1 2022/05/04 11:36
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
透過PNGが透過されない!!
-
VBSの「MsgBox」について
-
C#とJavaで、MP3タグの画像を表...
-
ドラッグアンドドロップで画像...
-
SQLiteに画像を格納したい
-
ImageTTFTextで保存すると文字...
-
GDの画像変換でサーバーに負荷
-
phpでダイアログがどうしても出...
-
PHPで吐き出した画像にリンクを...
-
手作業で埋め込んだ、UserForm1...
-
ListViewコントロールでサムネ...
-
GDI+を使ったビット数とDPIの扱い
-
VBAでJPGサイズ変更
-
PHP MySQLに画像を直接保存
-
拡張子php画像をjpg画像等に変...
-
php,mysqlにて画像パス保存/表...
-
OpenGLで描いて画像ファイル出力
-
PHPで画像コピーについて
-
フォントの色を変えるには?
-
ImageCreate関数が undefined f...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
透過PNGが透過されない!!
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
C# Excelファイルへの画像挿入。
-
VBAでJPGサイズ変更
-
SQLiteに画像を格納したい
-
iphoneで虫眼鏡の作り方
-
PHP MySQLに画像を直接保存
-
Illustratorで文字と画像を流し...
-
openCVの超解像処理
-
PHPで吐き出した画像にリンクを...
-
ChatGPTに作らせたい Excel VBA
-
PHPによる画像の生成による色の...
-
pictureboxに表示した画像のフ...
-
GDI+を使ったビット数とDPIの扱い
-
ウィンドウサイズを取得して、p...
-
ビットマップ画像を読み込むプ...
-
BLOBデーターの画像の表示方法...
-
OpenGLで描いて画像ファイル出力
-
ImageTTFTextで保存すると文字...
おすすめ情報