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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2012, 02:03   #1
V_a_d
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 15
По умолчанию Динамическое MainMenu

Здравствуйте!

Подскажите, как правильно выполнить AutoHotkeys := maManual, чтобы убрать из названия пункта меню символ "&"

В процедуре MM1_Click отлавливаю нажатие и в строке Name_Caption := (Sender as TMenuItem).Caption присутствует символ "&". Если он был бы только спереди, то проблем не было, но на разных ОС появляется в разных местах строки.

DM.Q_Lnk.First;
repeat
i := i + 1;
MI := TMenuItem.Create(DM.MM1_);

with MI do
begin
Tag := i;
OnClick := MM1_Click;
Caption := DM.Q_Lnk.FieldByName('Name').AsStri ng;
end;

if DM.Q_Lnk.FieldByName('Path').AsStri ng <> '' then DM.N3.Add(MI);
DM.Q_Lnk.Next;
until DM.Q_Lnk.Eof;
V_a_d вне форума Ответить с цитированием
Старый 25.04.2012, 02:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
DM.MM1_
а что это у Вас за объект?!

если это TMainMenu, так ему и задайте:
Код:
    DM.MM1_.AutoHotkeys := maManual;
а вообще, конечно, проблема непонятна! Чем вам символ & помешал то?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.04.2012, 16:56   #3
V_a_d
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 15
По умолчанию

Так пробовал DM.MM1_.AutoHotkeys := maManual не помогло.

Задача в следующем:
Необходимо запуcкать программы из главного меню.

Есть постоянное главное меню с готовыми разделами "MM1_"
При нажатии на раздел, динамически подгружаются пункты меню из базы.
Название пунктов и путь к программам пользователь заносит в базу самостоятельно. Постоянные пункты меню отслеживаю по MM1_.Tag := (Sender as TMenuItem).Tag. Пункты меню, где путь не прописан не выводятся.

При вызове обработчика применяю фильтр:

Name_Caption := (Sender as TMenuItem).Caption;

Filter := 'Name = ''' + Name_Caption + '''' + ' And OwnerID = ' + IntToStr(Razdel);

Shellexecute(Application .Handle, 'open', PChar('"' + Lnk.FieldByName('Path').AsString + '"'), nil, nil, Sw_ShowNormal);

Придумал временное решение, а может постоянное.

i := 0;
repeat
if Name_Caption[i] = '&' then Delete(Name_Caption, i, 1);
i := i + 1;
until i = Length(Name_Caption);

Есть другой способ?

Последний раз редактировалось V_a_d; 25.04.2012 в 17:14.
V_a_d вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MainMenu _-Re@l-_ Общие вопросы Delphi 8 28.05.2010 23:28
Mainmenu San4o Общие вопросы Delphi 7 24.09.2009 10:09
MainMenu Simon..14 Общие вопросы C/C++ 4 26.04.2009 14:28
Динамическое MainMenu dr.Chas Общие вопросы Delphi 4 24.06.2008 20:33
MainMenu Небесный Общие вопросы Delphi 5 27.11.2007 23:17