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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2011, 12:00   #1
Ky3Heu,
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 94
Лампочка Работа с PopupMenu

Здравствуйте. Есть такой трабл: мне нужно создать динамическое дропдаун меню. У каждого меню должно быть еще и сабменю. Количество МЕНЮ и САБМЕНЮ заранее неизвестно и варьируется количеством записей в справочниках.
Суть самой задачи такова: У меня в организации туева хуча объектов, которые делятся еще и на разные подразделения и мне нужно, чтоб в Edit заносились Объект.Caption+Подразделение.Captio n, по которым кликнул пользователь.
Честно никогда этим не интересовался и даже идей, как это сделать нет. Помогите плиз. Или может порекомендуете организовать это как-то по-другому??
По ракетам и хоккею - Россияне всех сильней!

Последний раз редактировалось Ky3Heu,; 28.06.2011 в 12:09. Причина: Недописал
Ky3Heu, вне форума Ответить с цитированием
Старый 28.06.2011, 12:25   #2
flexterful
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 39
По умолчанию

// Заполнение
Загрузжаешь все надписи в попуп. методом АддЧаилд или типо того
// Приготовление к обработке
И присваеваешь каждому одит и тот же ОнКлик.
// Получение текучего подпункта
В евенте кастируешь Сендер как ТМенюИтем и работаешь.
// Заполнение ТЕдит
Записываешь в ТЕдит значение Кэпшион
В цикле добавляешь в начало ТЕдит всех родителей подпункта (ХэсПарент или типо того)
Чего бы тут сделать, дабы ничего неделать?
flexterful вне форума Ответить с цитированием
Старый 28.06.2011, 14:39   #3
Ky3Heu,
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 94
По умолчанию

Спасибо, конечно, но принцип мне понятен был и так.. Я с код написать не могу для всего этого..
По ракетам и хоккею - Россияне всех сильней!
Ky3Heu, вне форума Ответить с цитированием
Старый 28.06.2011, 15:57   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
    PopupMenutilte: TPopupMenu;

procedure TFormReestr.PopupMenutiltePopup(Sender: TObject);
var
  j: integer;
  s: string;
  m: TmenuItem;
begin
  for j:=self.PopupMenutilte.Items.Count-1 downto 0 do
  begin//чистим динамическую часть(список полей)
    m:=self.PopupMenutilte.Items.Items[j];
    if m.Tag<>0 then m.Free;
  end;
  for j:=self.DBGrid1.Columns.Count-1 downto 0 do
  begin//формируем динамическую часть(список полей)
    s:=self.DBGrid1.Columns.Items[j].Title.Caption;
    m:=tmenuitem.Create(self);
    m.Tag:=integer(self.DBGrid1.Columns.Items[j].Title);
    m.OnClick:=self.GetSorted;
    m.Caption:=s;
    self.PopupMenutilte.Items.Insert(0,m);
  end;
end;

procedure TFormReestr.GetSorted(sender: TObject);
var
  r: string;
  ms: string;
begin
  ms:=TmenuItem(sender).Caption;
  if (length(ms)>0) and (ms[1]='&') then delete(ms,1,1);
....
end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 28.06.2011 в 16:09.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с PopupMenu ***СкаЙ*** Общие вопросы Delphi 4 24.05.2010 20:48
Работа с PopupMenu |{ot Win Api 5 05.02.2010 18:00
Совместная работа hook и PopupMenu (Delphi 7) alxd Помощь студентам 7 24.07.2009 10:32
PopupMenu Михаил Юрьевич Общие вопросы Delphi 6 03.05.2008 18:46