Как использовать TSynEdit или TSynMemo с Delphi XE4 и применить стиль Delphi VCL? У меня установлен SynEdit, но я не могу перетащить компонент TSynMemo на форму после активации стиля VCL в приложении. Нужно ли мне внести какие-то изменения в исходный код SynEdit, чтобы VCL Style мог работать?
Как я могу использовать SynEdit со стилями Delphi VCL?
comment
Я не могу воспроизвести эту проблему в Берлине. Вот что я сделал: File->New->VCL Forms Application. Project-›Options-›Application-›Appearance, проверил несколько визуальных стилей и установил Windows 10 в качестве стиля по умолчанию. Закрыл диалоговое окно, перешел к палитре компонентов, ввел Syn в поле поиска и дважды щелкнул TSynMemo. Он появился на форме, как обычно. Снова открыл диалоговое окно параметров и изменил стиль на Amakrits, закрыл диалоговое окно и запустил приложение. Это сработало (хотя SynEdit не был оформлен). У вас установлена самая последняя версия SynEdit?
- person Ken White   schedule 29.06.2017
comment
И что именно означает нельзя перетаскивать?
- person Ken White   schedule 29.06.2017
comment
@KenWhite: И что именно означает не может перетаскивать? — во время разработки пользователи могут визуально перетаскивать компонент из палитры компонентов или палитры инструментов и перетаскивать его в конструктор форм вместо двойным щелчком или нажатием Enter. Таким образом, предположительно IDE предотвращает удаление или конструктор компонента вызывает исключение
- person Remy Lebeau   schedule 29.06.2017
comment
@Remy: Да, я знаю, как работают палитра компонентов и дизайнер форм. Я также указал, что не могу воспроизвести проблему, и мне интересно, просто ли автор не видит этого в палитре, вкладка палитры недоступна или возникает ошибка или исключение; вопрос просто говорит: нельзя перетаскивать. Было бы полезно что-то более конкретное, точно так же, как более подробная информация полезна, когда постер описывает проблему как это не работает.
- person Ken White   schedule 29.06.2017
comment
@KenWhite Палитра компонентов SynEdit даже не отображается. Он отображается в обычном приложении Windows.
- person Thomas Jaeger   schedule 29.06.2017
comment
Я подозреваю, что у вас не самая последняя версия SynEdit. Возможно, вы захотите посмотреть, сможете ли вы обновить его.
- person Ken White   schedule 29.06.2017
comment
@ThomasJaeger Палитра компонентов SynEdit даже не отображается. Он отображается в обычном приложении Windows — палитры зависят от контекста. Таким образом, либо проект не находится в контексте, для которого зарегистрирован SynEdit (VCL или FMX), либо, возможно, конструктор форм не активен, либо, возможно, в проекте просто не загружены пакеты SynEdit (пакеты могут быть загружены/выгружены на в зависимости от проекта)
- person Remy Lebeau   schedule 29.06.2017
comment
Зачем кому-то понижать оценку хорошего и действительного вопроса? ВТФ? Цензура и негатив на SO сумасшедшие.
- person Thomas Jaeger   schedule 29.06.2017
comment
Забудь о счете, Томас. От меня вы получите голосование прямо сейчас. Но я бы рассмотрел возможность включения подробностей о том, какие элементы вам нужно стилизовать с помощью стилей VCL, потому что элементы управления SynEdit (за исключением некоторых) контролируются используемым стилем подсветки синтаксиса.
- person Victoria   schedule 06.07.2017
Ответы (1)
Я использовал более старую версию SynEdit. Я использовал эту версию: TurboPack/SynEdit
Как только я его установил, в дизайнере появилась палитра SynEdit. Тем не менее, я не вижу, чтобы он вообще был скинирован, тогда как все остальные стандартные элементы управления скинированы.
Я нашел решения здесь и здесь с помощью TStyleHook.
person
Thomas Jaeger
schedule
29.06.2017
Да потому что VCL Style для него никто не создавал. SynEdit предназначен для подсветки синтаксиса. Я бы сказал, что в лучшем случае можно стилизовать фон и цвет шрифта текста по умолчанию. Остальное зависит от выбранного хайлайтера. Для этого необходимо отразить токен цвета используемого хайлайтера. Я имею в виду, что вы не можете применить стиль VCL, чтобы сделать этот элемент управления черным фоном, имея, например, жетоны идентификатора, окрашенные черным шрифтом.
- person Victoria; 29.06.2017
@Victoria Я знаю, для чего нужен SynEdit. Я создал собственные маркеры. Например, вам все равно нужно будет стилизовать вертикальную и горизонтальную полосы прокрутки. Подсветка не имеет ничего общего со скиннингом TSynEdit или TSynMemo.
- person Thomas Jaeger; 29.06.2017
Затем сделайте это. Это все.
- person Victoria; 29.06.2017