Перейти к содержанию
Fire Monkey от А до Я
  • 0

Порядковый номер динамического Image


AndroidHalfNoob

Вопрос

динамически создаю картинки из базы. потом при нажатии на любой динамический Image, должно выдаваться его имя, но имя выдается только последнего элемента. Пробовал 2 разный варианта:

Цитата

procedure TForm1.Button1Click(Sender: TObject);
var i:byte; Image:TImage;
begin

    for i:=1 to MyQuery1.RecordCount do begin
    Image := tImage.Create(Self);
    Image.Parent := Image1;

    Image.position.x :=MyQuery1.FieldByName('x').AsInteger;
    Image.position.y := MyQuery1.FieldByName('y').AsInteger;
    Image.Height:=MyQuery1.FieldByName('Height').AsInteger;
    Image.Width:=MyQuery1.FieldByName('Width').AsInteger;
    Image.name:= 'q'+inttostr(i);
    Image.Bitmap.Assign(ImageList1.Source.Items.MultiResBitmap.Bitmaps[1]);
    Image.Visible := true;
    MyQuery1.Next;

    end;
     Image.OnClick := Image1Click;
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
with sender as timage do
ShowMessage(Image.Name);
end;

Выдается имя только последнего элемента.

Так же пробовал массив создавать:

Цитата

procedure TForm1.Button1Click(Sender: TObject);
var y:byte;Image:array[1..3] of TImage;
begin

     for i:=1 to 3 do begin
    Image := tImage.Create(Self);
    Image.Parent := Form1;

    Image.position.x :=MyQuery1.FieldByName('x').AsInteger;
    Image.position.y := MyQuery1.FieldByName('y').AsInteger;
    Image.Height:=MyQuery1.FieldByName('Height').AsInteger;
    Image.Width:=MyQuery1.FieldByName('Width').AsInteger;
    tip:=MyQuery1.FieldByName('Type').AsInteger;
    Image.name:= 'q'+inttostr(i);
    Image.TagString:=  i;
    Image.Bitmap.Assign(ImageList1.Source.Items.MultiResBitmap.Bitmaps[1]);
    Image.Visible := true;
    MyQuery1.Next;

    end;
     Image.OnClick := Image1Click;
end;

procedure TForm1.Image1Click(Sender: TObject);
var a:integer;
begin
 a:=(Sender as TImage).Tag;
ShowMessage(FloatToStr(a));
end;

Выдается ошибка:

image.png.2e47114d27e43d15be5f11d2b4925f69.png

но при этом картинки появляются, но Tag выдается только первой картинки.

Изменено пользователем AndroidHalfNoob
Ссылка на комментарий

Рекомендуемые сообщения

  • 1
10 часов назад, Равиль Зарипов (ZuBy) сказал:

так у тебя присвоение события (OnClick) смотри где стоит)

Перенес    Image.OnClick := Image1Click; в цикл. все равно свойство Name выдается только последнего элемента

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...