Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамически созданный Image [D7, XP]


Arinyshka ©   (2008-04-23 11:18:00) 

считывая из БД картинки, я создаю динамические Image:
FImages: array of TImage; (в привате формы)
Циклом FImage[i]:=TImage.Create(SetPayFrm);
При создании к картинкам привязывается одно и то же контекстное меню.
Tag картинки занят доп инфрормацией. Name я ей не назначала... координаты картинки на родителе все время меняются.

Теперь мне нужно картинку удалять. Есть хранимая, все бы не вопрос... Удалять собиралась по щелчку в контекстном. Процедура обработки щелчка есть. Пытаюсь передать в нее Sender картинки, у которой вызывалось меню - ошибка на выполнении, свойства Sender не те, что ожидались от выбранной картинки...

Вопрос в следующем: если у меня массив TImage, что я знаю о каждом? Как мне обратиться к конкретному... не координаты же вычислять. конструкция

procedure TSetPayFrm.ImageContextPopup(Sender: TObject; MousePos: TPoint;
 var Handled: Boolean);
begin
CurrentImage := Sender as TImage;
end;
прекрасно работала, пока картинки были размещены как статические компоненты... Теперь - нет.
Сорри за запутанный вопрос...


Arinyshka   (2008-04-23 11:47:00) [1]

ЭЭЭ... вот и вся привязка:
with FImages[i] do
     begin
      Picture.bitmap.LoadFromStream(MyStream);
      Tag:=qrUniImage.FieldByName('id_image').AsInteger;
      PopupMenu:= PopupMenuImage;
     end;
Create, Parent.. просто вырезала, чтобы вас не грузить :)


Arinyshka   (2008-04-23 11:45:00) [2]

УРРААА!!! Заработало :) пасиб за TPopupMenu.PopupComponent :)


Игорь Шевченко   (2008-04-23 11:33:00) [3]


> При создании к картинкам привязывается одно и то же контекстное
> меню.


код привязки в студию.


> Пытаюсь передать в нее Sender картинки, у которой вызывалось
> меню - ошибка на выполнении, свойства Sender не те, что
> ожидались от выбранной картинки...


параметр sender - это то, что тебе надо


Palladin   (2008-04-23 11:23:00) [4]

TPopupMenu.PopupComponent


Ega23   (2008-04-23 11:23:00) [5]

1. Если Name бесполезно - пользуйся свойством Tag.
2. Если Tag уже занят, то я бы посоветовал написать свой класс, в котором будет TImage и хранить экземпляры уже этого класса. Ну либо потомок TImage.


Наверх

Титульная страница Поиск, карта сайта Написать письмо