今日は、まず、次の2点を確認しました。
1)クラスの継承
2)アニメーションの作成方法
Flash Builderとの比較で説明していきたいと思いますが、例となるソースコードは下のとおりです。TImageクラスを継承してTImage1クラスを作りました。addCheidに相当するのは、Parentプロパティです。アニメーションは単振動の例です。描画イベントはないかも知れません。タイマーイベントでアニメーションを作りました。Image1.hをincludeすることを忘れずに(入力補完してくれません)。TImage1クラスを作る=カスタムコンポーネントを作る、ということですが、コンポーネントまでは作りませんので、Image1.cppに追加部分を書くだけです。何かわからないコードが自動生成されてついてきますが、そのままにしておいて問題ないようです。次の例では、Picture、Left、TopをTImage1クラスに入れただけです。
#include <vcl.h>
#include "Image1.h" // <--- 注意!
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TImage1 *image;
double k = 0.03; // 単振動の復元力を決める
double vx = 0; // x方向の速度
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner){
image = new TImage1(this);
image->Parent = this; // <-- 注意!
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender){
vx += -k*(image->Left - 200);
image->Left += vx;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClick(TObject *Sender){
Timer1->Enabled = true;
}
クラスの継承とアニメーションの作成については、Flash Builderとほぼ同じと考えていいかと思います。上の例で、タイマーのソースは書いていません。コンポーネントを使いました。こういう点は、つまり、Flashと同じです。Webサイトを検索してみると、多くの人は、C++BuilderをFlash Builder的に使っているのではなく、Flash的に使っているようです。もったいない!
コメントをお書きください