|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
как сделать один popupmenu к 2ум различным объектам
Здравствуйте! У меня такая проблема: есть на форме три картинки и одно popupmenu, этот popup у всех трёх картинок, как сделать так, чтобы пункт меню определял над какой именно картинкой он находится, чтобы сделать действие именно над ней? Очень надо! Помогите, пжлста!
|
#2
|
||||
|
||||
Можно так попробовать. В событии OnContextPopup ваших картинок прописать чтото типа такого:
Код:
procedure TForm35.Image1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); begin PopupMenu1.Items[0].Caption := 'Картинка №'+TControl(Sender).Name; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
нет, не то. Объясню по-другому. На форме две картинки и один Popupmenu1. У обоих картинок в свойстве popupmenu стоит этот popupmenu1. В пункты меню входит 2 пункта: работа(зелёная картинка) и резерв(жёлтая картинка). По нажатию на пункт "работа" картинка должна поменяться на зелёную, но именно та картинка над которой нажали правую клавишу.
|
#4
|
||||
|
||||
А такой вариант?:
Код:
procedure TForm35.FormCreate(Sender: TObject); begin Image1.Canvas.Brush.Color := clGreen; Image1.Canvas.FillRect(Image1.ClientRect); Image2.Canvas.Brush.Color := clGreen; Image2.Canvas.FillRect(Image2.ClientRect); end; procedure TForm35.ImageContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); begin if TImage(Sender).Canvas.Brush.Color = clGreen then N1.Caption := 'Старт' else N1.Caption := 'Стоп'; if Sender = Image1 then N1.Tag := 1 else N1.Tag := 2 end; procedure TForm35.N1Click(Sender: TObject); Var Image: TImage; begin case N1.Tag of 1: Image := Image1; 2: Image := Image2; end; if Image.Canvas.Brush.Color = clRed then Image.Canvas.Brush.Color := clGreen else Image.Canvas.Brush.Color := clRed; Image.Canvas.FillRect(Image.ClientRect); end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 20.09.2009 в 22:20. |
#5
|
|||
|
|||
Спасибо огромное! немного подправил под свои нужды и всё работает!!!
|