Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.09.2009, 16:18
TiTOFFF TiTOFFF вне форума
Прохожий
 
Регистрация: 20.09.2009
Сообщения: 5
Репутация: 10
Сообщение как сделать один popupmenu к 2ум различным объектам

Здравствуйте! У меня такая проблема: есть на форме три картинки и одно popupmenu, этот popup у всех трёх картинок, как сделать так, чтобы пункт меню определял над какой именно картинкой он находится, чтобы сделать действие именно над ней? Очень надо! Помогите, пжлста!
Ответить с цитированием
  #2  
Старый 20.09.2009, 19:00
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Можно так попробовать. В событии OnContextPopup ваших картинок прописать чтото типа такого:
Код:
procedure TForm35.Image1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
begin
 PopupMenu1.Items[0].Caption := 'Картинка №'+TControl(Sender).Name;
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 20.09.2009, 20:38
TiTOFFF TiTOFFF вне форума
Прохожий
 
Регистрация: 20.09.2009
Сообщения: 5
Репутация: 10
По умолчанию

нет, не то. Объясню по-другому. На форме две картинки и один Popupmenu1. У обоих картинок в свойстве popupmenu стоит этот popupmenu1. В пункты меню входит 2 пункта: работа(зелёная картинка) и резерв(жёлтая картинка). По нажатию на пункт "работа" картинка должна поменяться на зелёную, но именно та картинка над которой нажали правую клавишу.
Ответить с цитированием
  #4  
Старый 20.09.2009, 22:17
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

А такой вариант?:
Код:
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  
Старый 25.09.2009, 22:46
TiTOFFF TiTOFFF вне форума
Прохожий
 
Регистрация: 20.09.2009
Сообщения: 5
Репутация: 10
По умолчанию

Спасибо огромное! немного подправил под свои нужды и всё работает!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter