|
Вопрос # 4 740/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
У меня есть связка TActionMainMenuBar с TActionManager. Программно создаются TAction и TActionClientItem. Для этого сделан простенький класс. Подскажите как правильно удалить элемент из меню.
Сейчас получается так, что я при открытии файла с помощью класса добавляю элементы в меню с действиями в зависимости от содержания файла. При открытии другого файла старые элементы меню должны удалиться и добавиться новые. Но у меня отображаются новые элементы неактивными.
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: Roman Novikov (статус: Посетитель)
Вопрос отправлен: 17 ноября 2010, 11:05
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 18 ноября 2010, 17:35; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 17 ноября 2010, 11:17 [#1]:
Цитата (Roman Novikov):
Программно создаются TAction и TActionClientItem. Для этого сделан простенький класс. Подскажите как правильно удалить элемент из меню.
Предполагаю, что надо удалять не только созданный TAction, но и TActionClientItem, связанный с ним.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Roman Novikov (статус: Посетитель), 17 ноября 2010, 17:24 [#2]:
А еще в созданных таким образом Actions иконки съезжают вниз.
|
|
Roman Novikov (статус: Посетитель), 18 ноября 2010, 15:22 [#3]:
min@y™, я в цикле получаю все подэлементы типа TActionClientItem's, у его Action'а вызываю деструктор, а потом и деструктор самого элемента. Все равно не получилось.
|
|
min@y™ (статус: Доктор наук), 18 ноября 2010, 15:30 [#4]:
TActionClientItem - это что, пункт меню?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
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 (статус: Посетитель), 18 ноября 2010, 17:35 [#6]:
Но почему иконки у динамически создаваемых элементов съехавшие вниз не понял.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|