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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.05.2016, 22:02
Аватар для VyachNik
VyachNik VyachNik вне форума
Прохожий
 
Регистрация: 09.02.2012
Сообщения: 5
Репутация: 10
Вопрос Обработка контекстного меню несколькими эдитами

Всем привет!
Имеется форма, два эдита, контекстное меню, обработку контекстного меню попробовал повесить на оба эдита, а почему-то не работает, подскажите плиз, что не так, спасибо.
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.PopupMenu := PopupMenu1;
  Edit2.PopupMenu := PopupMenu1;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
    with Sender as TEdit do
      Text := 'Hello!';
end;
Изображения
Тип файла: png 2_edits_events.png (6.2 Кбайт, 6 просмотров)

Последний раз редактировалось VyachNik, 30.05.2016 в 22:58.
Ответить с цитированием
  #2  
Старый 31.05.2016, 00:44
Аватар для Verevkin
Verevkin Verevkin вне форума
Прохожий
 
Регистрация: 22.06.2015
Адрес: 1600, пенсильвания-авеню, п.г.т. верхний Вашингтонск, 8126 км от МКАД, от поста ГАИ - налево.
Сообщения: 40
Версия Delphi: 3...XE10
Репутация: -50
По умолчанию

Код:
procedure TForm1.N3Click(Sender: TObject);
begin
    with Sender as TComponent do
      ShowMessage(Name); //Text := 'Hello!';
end;
Ответить с цитированием
Этот пользователь сказал Спасибо Verevkin за это полезное сообщение:
VyachNik (31.05.2016)
  #3  
Старый 31.05.2016, 06:31
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

И не должно. В Вашем исполнении полю Text присваивается значение тому, кто вызвал этот метод (Sender). В свою очередь, этот метод вызван менюитемом N3 (Sender=N3).

Чтобы решить Вашу задачу, достаточно посмотреть на свойство PopupMenu.PopupComponent:
Код:
procedure TForm1.N3Click(Sender: TObject);
begin
  if PopupMenu1.PopupComponent is TEdit then
  TEdit(PopupMenu1.PopupComponent).Text := 'test';
end;
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение:
VyachNik (31.05.2016)
  #4  
Старый 01.06.2016, 23:43
Аватар для Verevkin
Verevkin Verevkin вне форума
Прохожий
 
Регистрация: 22.06.2015
Адрес: 1600, пенсильвания-авеню, п.г.т. верхний Вашингтонск, 8126 км от МКАД, от поста ГАИ - налево.
Сообщения: 40
Версия Delphi: 3...XE10
Репутация: -50
По умолчанию

такого мощного минуса за полезный пост я за 18 лет в интернетах ещё не получал.
в очередной раз убедился: каждое доброе дело должно быть наказано.

АдмиН: Репутацию я поднял до -50
ПС. Не стоит выделять подпись более, чем это необходимо

Последний раз редактировалось Admin, 02.06.2016 в 20:16.
Ответить с цитированием
  #5  
Старый 01.06.2016, 23:57
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Verevkin
такого мощного минуса за полезный пост я за 18 лет в интернетах ещё не получал.
в очередной раз убедился: каждое доброе дело должно быть наказано.
Ну обработчик нажатия меню, там sender — TMenuItem. ТС нужно эдит изменить, а не изменить текст элемента попап-меню.
Так что твой ответ, мягко говоря, не в тему, собственно как и мой.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 02.06.2016, 09:35
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Цитата:
Сообщение от Verevkin
такого мощного минуса за полезный пост я за 18 лет в интернетах ещё не получал.
в очередной раз убедился: каждое доброе дело должно быть наказано.
Я глубоко извиняюсь за оффтоп. Но должен изъясниться. Минус поставил я, а такой большой получился, потому что у меня репутация высокая, как следствие и минус у меня жирнее.

А теперь обосную. Я уже много раз натыкался на твои сообщения в разных темах и твои ответы мягко говоря "не в тему". Ты не предлагаешь решения, не указываешь направление куда копать и т.п. В глобальном понимании твои ответы пока бесполезны. А порой еще и вредят, как в этой теме. Ты не разобрался в вопросе ТСа и даешь заведомо неверное решение.

К сожалению я что-то не могу тебе подправить репутацию на текущий момент. Надеюсь ты будешь внимательнее, а я подправлю свой минус.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение:
M.A.D.M.A.N. (02.06.2016)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter