![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте! У меня такая проблема: есть на форме три картинки и одно 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
|
|||
|
|||
|
Спасибо огромное! немного подправил под свои нужды и всё работает!!!
|