Вы не можете изменить подпись обработчика события. Это должно быть то, что ожидает VCL, что в данном случае определяется типом TNotifyEvent
, что событие OnClick
объявлено как:
typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
__property System::Classes::TNotifyEvent OnClick = {read=FOnClick, write=FOnClick, stored=IsOnClickStored};
Однако подпись менять не нужно. Все компоненты VCL являются производными от TObject
, а параметр Sender
указывает на элемент управления, который был нажат. Итак, в этом случае вы можете просто использовать приведение типа для доступа к функциям, которые указаны с c до TImage
, например:
void __fastcall TForm1::Image1Click(TObject *Sender)
{
static_cast<TImage*>(Sender)->Picture->LoadFromFile("puste.bmp");
}
Затем вы можете назначить этот 1 обработчик всем 64 из ваши элементы управления TImage
.
Если вам нужно различать разные элементы управления TImage
, вы можете использовать для этой цели свойство TImage
Name
или Tag
.