Не слабо было бы указать размерность массива, ну да ничего, будем исходить из того что он у тебя двумерный (матрица)
Код:
//заполнение
var
ImageData:array [1..10,1..10] of TImage; //глобальный
...
...
var
i,j:integer;
begin
for i:=1 to 10 do
for j:=1 to 10 do
ImageData[i,j]:=TImage.Create(nil);
... //тут заполение прочих полей, типа Left, Top, Parent и т.д.
ImageData[i,j].Tag:=256*i+j; //По этому числу будем идентифицировать картинку в массиве
ImageData[i,j].OnMouseDown:=ImageDataEventMouseDown;
next; //j
next; //i
end;
//Реакция на событие
procedure [Твоя_Форма_или_Что_У_Тебя_Там].ImageDataEventMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
i,j:integer;
begin
if Sender is TImage then //проверка, а действительно ли правильный объект вызвал событие
begin
if (Sender as TImage).Tag > 0 then //Это "наш" TImage
begin
i:=(Sender as TImage).Tag div 256;
j:=(Sender as TImage).Tag mod 256;
ImageData[i,j] //Вот это TImage в твоем массиве, делай с ним чего хошь.
end;
end;
end;
другие события по аналогии
ЗЫЖ Писано прямо тут, так что в синтаксисе наверное полно ошибок
