C++ Builder XE4 FireMonkey Change Color TButton(C++ source code)

Image1->HitTest = false;
Image1->Opacity = 0.4;
Image1->Position->X = Button1->Position->X;
Image1->Position->Y = Button1->Position->Y;
Image1->Width = Button1->Width;
Image1->Height = Button1->Height;
Image1->Bitmap = new TBitmap(int(Image1->Width),int(Image1->Height));
//Image1->Bitmap->Canvas->BeginScene();
Image1->Bitmap->Clear(claLime);
//Image1->Bitmap->Canvas->EndScene();

C++ Builder FireMonkeyでソースで動的にボタンの色を変える方法。
TButtonの上にTImageを貼り付けてTImageに色を書いて半透明にすればボタンの色が変わったように見えるという方法。
半透明なので色が薄くなるのと、元々のボタンの色も混ざるがそういう細かいことを気にする人は使えない。
TImageはTButtonよりも前画面に出るように貼る。
ソースでサイズや座標をセットすればいいので画面設計の貼り付けはボタンより前画面にあれば適当な位置に適当なサイズで貼ってもかまわない。
TImage->HitTestをfalseにしないとクリックしてもボタンのOnClickに飛んで行かず、TImageのオンクリックに飛んで行く。
Opacityプロパティで透明度を指定する。
Opacityプロパティの値が1だと透明ではないのでボタンは全く見えなくなるので0.2とか0.4とか1未満の値をセットする。
検索すると、設計時にStyleBookのファイルを作ってファイルを保存してどうのこうのという複雑で面倒な方法を説明している人もいたが、まねしようとしても意味がよく分からなくてできなかったし、このような面倒すぎる方法は避けたかった。
Image1->Bitmap->Canvas->BeginScene();と
Image1->Bitmap->Canvas->EndScene();は必要なのかどうか分からないがなくても動いたし要らないような気がする。
書いていても正しく動作する。
Image1->Bitmap->BitmapChanged();は書くとXE4ではアクセスできないとコンパイル時にエラーが出た。