へー!プログラムで TShape を作成しようとしています。プログラムを実行してボタンをクリックすると、すべてが機能します。しかし、もう一度ボタンをクリックすると、イベント OnMouseEnter(OnMouseLeave) は LAST Shape でのみ機能します。以前のものでは動作しません。
int i=0;
TShape* Shape[50];
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int aHeight = rand() % 101 + 90;
int bWidth = rand() % 101 + 50;
i++;
Shape[i] = new TShape(Form1);
Shape[i]->Parent = this;
Shape[i]->Visible = true;
Shape[i]->Brush->Style=stCircle;
Shape[i]->Brush->Color=clBlack;
Shape[i]->Top = aHeight;
Shape[i]->Left = bWidth;
Shape[i]->Height=aHeight;
Shape[i]->Width=bWidth;
Shape[i]->OnMouseEnter = MouseEnter;
Shape[i]->OnMouseLeave = MouseLeave;
Label2->Caption=i;
void __fastcall TForm1::MouseEnter(TObject *Sender)
{
Shape[i]->Pen->Color = clBlue;
Shape[i]->Brush->Style=stSquare;
Shape[i]->Brush->Color=clRed;
}
void __fastcall TForm1::MouseLeave(TObject *Sender)
{
Shape[i]->Pen->Color = clBlack;
Shape[i]->Brush->Style=stCircle;
Shape[i]->Brush->Color=clBlack;
}