Я немного смущен сообщением об ошибке, которое вы сообщаете. Это не сообщение об ошибке, которое производит ваш код. Сообщение об ошибке, на самом деле сообщается, для кода в вашем вопросе, является:
E2010 Incompatible types: 'TActionBarStyle' and 'string'
Оставляя это в стороне, правильный синтаксис для установки в стиле менеджера действий во время выполнения заключается в следующем:
ActionManager1.Style := PlatformDefault;
ActionManager1.Style := XPStyle;
ActionManager1.Style := StandardStyle;
Примечания что свойство Style
имеет тип TActionBarStyle
. Существуют различные экземпляры TActionBarStyle
потомков, определенных в VCL, по одному для зарегистрированного стиля.
Эти экземпляры - это все глобальные переменные, определенные в разделе интерфейса устройства, по одному экземпляру на экземпляр. Для того, чтобы получить доступ к этим объектам типа вам нужно будет use
следующие блоки:
Vcl.PlatformDefaultStyleActnCtrls
для PlatformDefault
стиля.
Vcl.XPStyleActnCtrls
для XPStyle
стиль.
Vcl.StdStyleActnCtrls
для StandardStyle
стиль.
Вам нужно будет опустить префикс Vcl
на старых версиях Delphi.
Дизайнер формы использует волшебство, чтобы стиль выглядел как строка в инспекторе объектов. Это было реализовано таким образом, чтобы вы могли зарегистрировать свои собственные стили.
Интересно, что VCL. был, но я предполагаю, что это должен быть XE2, поскольку я использую XE. Не могу поверить, что я не думал, что попытаюсь назвать это так, как вы и RRUZ показали! Как вы сказали, я думаю, потому что я видел это в Object Inspector как «Default Platform», я предположил, что это строка. И теперь, когда вы упомянули об этом, я обратил более пристальное внимание на редактор кода - ActionManager1.Стиль от TActionBarStyle, опять же, как вы указали. Иногда я просто пропускаю совершенно очевидное, я все еще участвую! :) Я принял ваш ответ из-за дополнительных деталей и информации. –
Да, 'Vcl.' - это новые префиксы пространства имен в XE2. Вы просто опускаете их для XE. Однако вы меня путали с сообщением об ошибке компилятора. Я уверен, что он не сказал, что ты сказал! ;-) –