Показать сообщение отдельно
  #18  
Старый 29.01.2007, 11:49
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Не слабо было бы указать размерность массива, ну да ничего, будем исходить из того что он у тебя двумерный (матрица)
Код:
//заполнение
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;

другие события по аналогии

ЗЫЖ Писано прямо тут, так что в синтаксисе наверное полно ошибок
Ответить с цитированием