Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Uucyc
0 / 0 / 0
Регистрация: 07.11.2017
Сообщений: 52
1

MainMenu узнать Items конкретного пункта

19.05.2018, 21:35. Просмотров 732. Ответов 3
Метки нет (Все метки)

Здравствуйте, как считать в переменную Items конкретного пункта меню, при этом этот конкретный пункт нам не известен. К примеру у меня есть в меню список товаров (Конкретно только название конфет). Если зайти через меню администратора, я захочу отключить конкретное название конфет. В ComboBox выбираю название конфетки и она должна исчезнуть из пункта меню. Кто знает как реализовать. Возможен какой-то поиск по MainMenu->Name?

Добавлено через 1 час 40 минут
Ребята, помогите...!!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2018, 21:35
Ответы с готовыми решениями:

Отследить нажатие пункта в компоненте MainMenu
Ребята подскажите, пожалуйста, по такому вопросу. У меня есть компонент MainMenu, я хочу отследить...

Узнать по какому итему Mainmenu произошел клик.
Доброго времени суток. Суть в том что элементы меню могут добавляться, и поэтому необходимо узнать...

MainMenu
Как можно сделать в меин меню чтоб кнопка была с галочкой или сдвигалось в право с дальнейшим...

MainMenu
Добрый день всем) в очередной раз обращаюсь к вам за помощью) мы начали изучать MainMenu, так то...

mainmenu
как сделать что бы mainmanu был почеркнут (отделен от остольной формы), а не просто надписи на...

3
nick42
Практикантроп
4347 / 2351 / 415
Регистрация: 23.09.2011
Сообщений: 5,007
20.05.2018, 00:13 2
Вот пример для простого меню (список конфет по первому пункту)__
C++
1
2
3
4
5
6
     TStringList *sL = new TStringList; int k;
     for(int i=0;i<MainMenu1->Items->Items[0]->Count;i++)
      sL->Add(MainMenu1->Items->Items[0]->Items[i]->Caption) ;
     if((k=sL->IndexOf(ComboBox1->Text))>=0) 
       MainMenu1->Items->Items[0]->Delete(k);
     delete sL;
Если структура меню сложнее - сложнее и поиск (в несколько циклов).
1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26507 / 17801 / 7043
Регистрация: 22.10.2011
Сообщений: 31,328
Записей в блоге: 6
20.05.2018, 00:30 3
Лучший ответ Сообщение было отмечено Uucyc как решение

Решение

Я бы написал поиск вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
TMenuItem *SearchIt(TMenuItem *it, String s)
{
    TMenuItem *found = 0;
    for (int i = 0; i < it->Count && !found; i++)
    {
        TMenuItem *v = it->Items[i];
        if(v->Caption == s) found = v;
        else if(v->Count > 0)
        {
            found = SearchIt(v, s);
        }
    }
    return found;
}
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    TMenuItem *it = 0;
    MainMenu1->AutoHotkeys = maManual; // чтобы амперсанды не мешались
 
    for (int i = 0; i < MainMenu1->Items->Count && !it; i++)
    {
        it = SearchIt(MainMenu1->Items->operator [](i), Edit1->Text);
    }
    if(it)
    {
        ShowMessage(it->Caption); // собственно, указатель на MenuItem с заданным Caption-ом у тебя есть - это то, что ты просил.
    }
}
Добавлено через 50 секунд
Цитата Сообщение от nick42 Посмотреть сообщение
(в несколько циклов)
Рекурсия должна быть, меню может быть и с подменюшками...
1
Uucyc
0 / 0 / 0
Регистрация: 07.11.2017
Сообщений: 52
20.05.2018, 01:16  [ТС] 4
volvo, Спасибо огромное.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2018, 01:16

MainMenu
Здравствуйте, создаю динамично пункты меню, события в них идентичны друг другу. Пункты создаю на...

MainMenu,Bitmap
Пробую добавить картинку *.bmp в какойнибудь пункт подменю. Но ничего не выходит. Слева от названия...

MainMenu, AutoCheked
Предположим я выбрал один из пунктов меню и стоит AutoCheked. Как теперь определить какой именно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru