Вопрос по DELPHI (iherited)
Или подобные вызовы в Object Pascal'е отменили?
Кстати, ты точно уверен, что там нет подходящего ActionClient'а, который можно было бы подсунуть?
[Error] ActManager.pas(174): E2362 Cannot access protected symbol TCustomActionList.AddAction
на счет клиентов, сам до конца не разобрался еще, код не мой
если метод виртуальный, то имхо никак
не знаю, как в 2005, но вплоть до 7-й версии все работало отлично.
Я всегда думал, что подобные вещи относятся к возможностям языка, а не к Дельфе.
2) в последнее время из обжект паскаля старательно убирали (или вешали Warning'и) всякие полезные и псевдополезные фичи для того чтобы получать более кроссплатформенный код. В частности при переходе на Object Paskal .NET многое было добавлено и много обрублено.
Оставить комментарий
tel7432545
В описываемом классе есть строка:inherited AddAction(tmp);
в Delphi 6 все ок, в 2005 - говорит, мало параметров
Все дело в том, что в 6-й версии
класс ссылался на предка TCustomActionManager, где не было AddAction
тогда он смотрел уже на предка TCustomActionManager - это TCustomActionList, где находилась нужная процедура
Теперь же библиотеке ActnMan в классе TCustomActionManager
появилась функция
function AddAction(AnAction: TCustomAction; AClient: TActionClient; After: Boolean = True): TActionClientItem;
и компайлер соответственно ругается, что мало параметров, когда недостающие задаешь nil - не отображаются иконки в меню и на панелях
Вопрос:
как обратиться к старой процедуре из TCustomActionList, минуя класс TCustomActionManager (т.е. прыгнуть через предка)