При срабатывании таймера страница полностью перегружается. А можно ли добиться того, чтобы фоновая картинка не перегружалась, а перегружались бы только маленькие картинки, которые сверху фоновой картинки?
Пробовала использовать событие TIWForm1::IWTimer1AsyncTimer. В точках останова видно, что это событие отрабатывается, однако картинки не меняются. В связи с этим вообще не понятно в чем может быть польза от события OnAsyncTimer?
#include
#pragma hdrstop
#include
#include
#include "ServerController.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//---------------------------------------------------------------------------
__fastcall TIWForm1::TIWForm1(TComponent* Owner)
: TIWAppForm(Owner)
{
}
//---------------------------------------------------------------------------
void setAsMainForm() {
TIWForm1::SetAsMainForm();
}
#pragma startup setAsMainForm
//1. Загрузить картинку фон
void __fastcall TIWForm1::IWButton1Click(TObject *Sender)
{
std::auto_ptrTJPEGImage> JPG(new TJPEGImage);
JPG->LoadFromFile("wwwroot\\images\\map1.jpg");
IWImage1->Picture->Bitmap->Assign(JPG.get());
}
//---------------------------------------------------------------------------
//2. На фон поставить 28 маленьких картинок
void __fastcall TIWForm1::IWButton2Click(TObject *Sender)
{
if(IWImage1->Picture->Bitmap->Empty)
{
throw Exception(L"Фоновая картинка не загружена");
}
int X = 20;
int Y = 20;
int row = 1;
int gen = 0;
for (int i = 0; i IWImageList1->Count; i++)
{
gen = Random(27);
IWImageList1->Draw(IWImage1->Picture->Bitmap->Canvas, X, Y, gen);
X = X + 64 + 30;
//28 картинок размером 64х64 пикселя отображаем в 4 строки
if(row % 7 == 0)
{
Y = Y + 64 + 30;
X = 20;
}
row++;
}
}
//---------------------------------------------------------------------------
void __fastcall TIWForm1::IWAppFormCreate(TObject *Sender)
{
Randomize();
}
//---------------------------------------------------------------------------
void __fastcall TIWForm1::IWTimer1Timer(TObject *Sender)
{
IWButton2Click(0);
}
//-------------------------------------------------------------------------