Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 740

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
У меня есть связка TActionMainMenuBar с TActionManager. Программно создаются TAction и TActionClientItem. Для этого сделан простенький класс. Подскажите как правильно удалить элемент из меню.

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

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1.  


Roman Novikov Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Roman Novikov (статус: Посетитель)
Вопрос отправлен: 17 ноября 2010, 11:05
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 18 ноября 2010, 17:35; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 17 ноября 2010, 11:17 [#1]:

Цитата (Roman Novikov):

Программно создаются TAction и TActionClientItem. Для этого сделан простенький класс. Подскажите как правильно удалить элемент из меню.

Предполагаю, что надо удалять не только созданный TAction, но и TActionClientItem, связанный с ним.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Roman Novikov

Roman Novikov (статус: Посетитель), 17 ноября 2010, 17:24 [#2]:

А еще в созданных таким образом Actions иконки съезжают вниз.
Roman Novikov

Roman Novikov (статус: Посетитель), 18 ноября 2010, 15:22 [#3]:

min@y™, я в цикле получаю все подэлементы типа TActionClientItem's, у его Action'а вызываю деструктор, а потом и деструктор самого элемента. Все равно не получилось.
min@y™

min@y™ (статус: Доктор наук), 18 ноября 2010, 15:30 [#4]:

TActionClientItem - это что, пункт меню?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Roman Novikov

Roman Novikov (статус: Посетитель), 18 ноября 2010, 17:33 [#5]:

var
AClient: TActionClientItem;
ActionManager1: TActionManager;
...
AClient := ActionManager1.FindItemByCaption('Объекты');
...
end;

В общем у меня свой косяк из-за повторяющихся элементов был, удалять можно так:
AClient := ActionManager1.FindItemByCaption('Объекты');
for i :=  AClient.Items.Count - 1 downto 0 do
    AClient.Items[i].Action.Destroy;
Roman Novikov

Roman Novikov (статус: Посетитель), 18 ноября 2010, 17:35 [#6]:

Но почему иконки у динамически создаваемых элементов съехавшие вниз не понял.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:27
Выполнено за 0.03 сек.