Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2014, 07:57   #1
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
Смущение Вопрос PopupMenu

Возможно это странный вопрос, но у меня возникли проблемы с компонентом PopupMenu.
Дело вот в чём, у меня очень много компонентов. (точнее 120 штук)
И для каждого, писать:
Код:
PM1122.Checked:=true;
Это как то уж слишком много...
Да и мне бы ещё хотелось что бы при выборе, всплывало пометка, мол "Изменения Сохранены"... И что, мне опять нужно каждый из 120 компонентов проходить по очереди?
В общем, вопрос такой:
====================
Как можно более комфортно и удобнее, ввести все нужные мне значения в каждый элемент PopupMenu?
====================
Janger вне форума Ответить с цитированием
Старый 02.07.2014, 08:45   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Был где-то на форуме код к твоей проблеме(изменения свойства компонентов по циклу). Там использовалась функция FindComponent.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 02.07.2014, 08:51   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как можно более комфортно и удобнее, ввести все нужные мне значения в каждый элемент PopupMenu?
А теперь берем себя в руки, набираем волосы в грудь и спокойно по русски рассказываем и описываем ситуацию.
Пока что на этот вопрос можно ответить только одно - в цикле по элементам меню.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.07.2014, 21:09   #4
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Помню я тоже создал около 300 Form а потом мне сказали что можно создавать динамически... =) ну все приходит с опытом))
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 02.07.2014, 22:00   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Fahman, дело говорит

ТС изучите компоненты: TActionManager, TActionsList, TActionToolBar, TActionPopupMenu, TactionMainMenu

Необходимость с 100500 PopupMenu сразу отвалится.
Одновременно пользователь может вызвать только 1 контекстное меню. Следовательно, можно использовать всего 1 компонент, меняя его владельца и содержимое динамически.
Человек_Борща вне форума Ответить с цитированием
Старый 18.03.2015, 10:02   #6
MasterofCDM
Пользователь
 
Регистрация: 02.07.2008
Сообщений: 94
По умолчанию

Всех приветствую, дабы не создавать лишних тем напишу сюда.

На форме есть несколько компонентов TDateTimePicker и нужно чтобы при нажатии правой клавиши мыши на любой из них, появлялся пункт меню "сегодня" и менялась дата на текущую. Сделать такое достаточно просто, но хочется универсальности, то биж при нажатии на любой из TDateTimePicker обрабатывалась бы одной командой.

Пытался сделать так:
Код:
procedure TAddRecF.N1Click(Sender: TObject);
begin
    (Sender as TDateTimePicker).Date := Now;
end;
Выдает ошибку(( Есть ли возможность узнать, кто вызвал процедуру N1Click?
MasterofCDM вне форума Ответить с цитированием
Старый 18.03.2015, 10:13   #7
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

Код:
var
i:integer;
begin
for i := 0 in self.componentcount - 1 do
 begin
  if self.components[i].classname = 'TPopupMenu' then
   (self.components[i] as TPopupMenu).checked := true;
 end;
end;
код писал тут, так что есть ошибки, но суть должна быть понятна
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 18.03.2015, 10:37   #8
MasterofCDM
Пользователь
 
Регистрация: 02.07.2008
Сообщений: 94
По умолчанию

Спасибо за помощь, но не совсем понятна суть. Зачем мы перебираем компоненты TPopupMenu? Он всего один. Мне нужно узнать, кто вызвал это меню. Если обрабатывать все TDateTimePicker, то как можно узнать какой из них активен?
MasterofCDM вне форума Ответить с цитированием
Старый 18.03.2015, 10:48   #9
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

Цитата:
Сообщение от MasterofCDM Посмотреть сообщение
Спасибо за помощь, но не совсем понятна суть. Зачем мы перебираем компоненты TPopupMenu? Он всего один. Мне нужно узнать, кто вызвал это меню. Если обрабатывать все TDateTimePicker, то как можно узнать какой из них активен?
мой ответ был для ТС, а тебе лучше было создать новую тему, чтобы не путаться в ответах
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 18.03.2015, 10:51   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Мне нужно узнать, кто вызвал это меню.
а почитать хэлп религия не позволяет или сексуальная ориентация? обязательно надо ковырнуть форум, штоб носом ткнули!
Изображения
Тип файла: png 13.png (22.6 Кб, 107 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
popupmenu Symba Общие вопросы Delphi 3 25.04.2011 09:15
PopupMenu пауэрлифтинг Общие вопросы Delphi 2 03.03.2010 14:52
PopupMenu Патрон Общие вопросы Delphi 7 15.06.2008 14:04
PopupMenu Teen4jump Общие вопросы Delphi 10 12.03.2008 13:42
Вопрос по PopupMenu Lonix Общие вопросы Delphi 1 29.03.2007 14:56