Перейти к содержанию
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 пользователей онлайн

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