Forum Replies Created
-
AuthorPosts
-
January 26, 2016 at 4:47 pm in reply to: TRichViewEdit заливка заднего фона слетает цвет при входе курсора мыши #54652TCountParticipant
RichView версии 14-15? 😮
Где же Вы его накопали?))) Я еле нашел 11-й версии)
TCountParticipant'RikoGG' wrote:Как сохранить изменённый стиль в ASkin Editor?
Куда и как тыкать? Нажимаю сохранить, создаётся папка и всё
Папки создаются для данных скинов, а сами файлы скинов лежат рядом с папками, уровнем выше (как на скрине).
В программе же нужно указывать в SkinManager'е папку, в которую SkinEditor сохраняет скины. Грубо говоря, ту папку, в которй у Вас создаются папки, как Вы писали))
TCountParticipant'Support' wrote:Да, там сложность в том, что системные функции вывода текста не рисуют текст выровненый по центру и состоящий из нескольких строк. Нужно писать самому такую функцию. Время нужно.
Понятно. Ну ничего страшного, мне итак нравится)
TCountParticipant'Support' wrote:Попробую улучшить это скоро!
Видимо, в 10.23 не получилось это сделать?
TCountParticipant'Support' wrote:Постараюсь скоро сделать, спасибо за демку.
Сразу пару багов ушло c TsRichEdit, спасибо)
TCountParticipant'Support' wrote:Пока что нет такой возможности, я приделаю скоро специальное свойство к компоненту, пока что думаю как назвать ))
Спасибо, вроде как работает)
TCountParticipant'Support' wrote:Желательна демка, так как не получается сделать как на скриншоте.
Не, не нужно. Все вроде как нормально. Видимо, у меня что-то глобально глюкануло и я выложил два бага, про вкладки и глифы)
Еще раз прошу прощения. В следующий раз буду тщательно баги проверять перед тем как опубликовать 🙄
TCountParticipant'Support' wrote:Что-то не получилось, одинаково нормально рисуется на обоих типах кнопок 🙁
Можно демку посмотреть?
Видимо, у меня снова глюки какие-то были))
Все нормально, закрываю.
TCountParticipant'VXDRV' wrote:Похоже, что проблема осталась без внимания Support…
Что изменилось в компонентах такого – что скиниррвание в контейнерах (TFrame и TForm) не идёт совсем, или не идёт должным образом в присутствии в проекте нескольких менеджеров?
Ну так создавайте 4 форму позже 5-й… Все компоненты, которые создаются в форме 4 уже изначально наследуют основной скин. Я так понимаю.
TCountParticipant'Pikiner' wrote:В общем прозрачность ведет себя странно (если накладывать компоненты друг на друга).
Я открыл ваш скин в редакторе скинов и оказалось, что все очень просто:
Дело в том, что у секции PANEL не установлены ни градиент, ни текстура, НО вместо этого установлен желый цвет в качестве цвета, который будет закрашиваться во всех прозрачных и непрозрачных областях (потому как бордюры у Вас без маски). Поэтому Вы и видете в углах кнопки желтый цвет.
Но даже с такими настройками секции PANEL было бы все нормально, если бы Вы перебросили всю прорисовку панели на бордюры (которые у вас одновременно являются и фоном). Этого можно достичь путем установки Transparency в 100%. То есть, панель будет рисоваться ТОЛЬКО на основе бордюров.
Скрин прилагаю.
TCountParticipant'Pikiner' wrote:Всем привет! У меня следующая проблема: создаю с нуля скин. Прозрачность использую без масок – только clFuchsia. Но когда например ставишь панель, а на нее кнопку, картинку с Png (с прозрачным каналом) и другие компоненты, то в местах где должен отрисовываться задник рисуется заданный цвет формы (а не картинка). На приложенной картинке видно, что вместо прозрачного фона (углы конпки, задник текста TCheckBox) рисуется белый фон. На TsImage с загруженной png картинкой вместо прозрачности тоже рисует белый фон.
З.Ы. рисую tform без кнопок и рамок, Transperent = true, фон clFuchsia . На ней tpanel с align = client.
Delphi X10
Все решаемо, но нужно пример посмотреть и сам скин. Лично я мало что понял, что там на чем лежит)))
TCountParticipant'VXDRV' wrote:В общем ситуация такова, что в версии 10.22 использование двух менеджеров скинов в одном проекте – невозможно!
Мне это нужно для показа превью формы собственного сочинения.
Баги проявляются и при использовании фреймов в форме, и форм в форме.
Везде, где это возможно в SkinData я указал нужный SkinManager. И получается, что в DesignTime кнопки и элементы красятся в положенный цвет, в RunTime – нет! Проект опять застопорился. 😕
Посмотрел проект…Если в OnCreate Form5 после присваивания Form4 родителя снова определить SkinManager для Form4, то будет норм.
То есть:
procedure TForm5.FormShow(Sender: TObject);
begin
Form4.Parent:=Self;
Form4.SkinProvider.SkinData.SkinManager:=SkinManager;
Form4.Show;
end;
P.S. Видимо, когда создается Form4, она еще не в курсе, к какому менеджеру принадлежит, это нужно делать программно. В том плане, что Form4 создается раньше Form5.
TCountParticipant'TCount' wrote:Прошу прощения, поспешил:) Странно, но я переоткрыл проект и все нормально стало)
Нет, все же не все)) Я понял, откуда такое расположение.
Вот все прекрасно, пока не активно свойство sPageControl ActiveTabElarged.
Именно оно и некрасиво центрирует текст в активной вкладке.
Можно доработать чуток это дело? 🙄
TCountParticipant'Support' wrote:Добрый вечер. Действительно, выглядит странно. А можно на другом скине посмотреть?
Прошу прощения, поспешил:) Странно, но я переоткрыл проект и все нормально стало)
TCountParticipant'Support' wrote:Можно решить быстро двумя способами:
1. Оставить какой-нибудь текст у компонента в дизайне
2. Вызвать sRichEdit1.HandleNeeded перед присвоением текста в OnCreate
Пока других идей нету..
Спасибо! Мне вполне хватит этих вариантов:)
TCountParticipant'Support' wrote:А еще, возможно нужно поудалять свои старые залитые файлы через панель управления.
Вот демка:
TCountParticipant'Support' wrote:Дело в том, что в пакете используется такая прозрачность только в углах (с помощью clFuchsia).
Это сделано для оптимизации отрисовки, то есть не нужно проверять каждый пиксель.
Если нужно сделать прозрачной часть стороны, то только с помощью маски, но такая секция будет рисоваться медленнее.
Спасибо за пояснения. В принципе, я уже научился с этим бороться)
TCountParticipant'Geba' wrote:Все сделал как Вы описали. Добавил в скин новую секцию. Сделал фон. Сохранил скин. Подключился с программы. А вот в SkinSection не вижу созданной мной секции. 🙁
Открываю в редакторе,секция есть,сохраняю скин и подключаюсь к нему, секции нет. Может не так сохраняю ???
Если Вы подключаете именно тот скин, который создали, то секция сама по себе не появится, если не перезагрузить скин. Грубо говоря, можно сначала в SkinManagere выбрать любой другой скин, после чего выбрать нужный.
И кстати, если при выборе скинов будет богатый выбор, то уж точно не ту папку в SkinManagere указали. Ведь Вы делали только один скин, значит только один и должен отображаться, как на рисунке, например:
TCountParticipant'Geba' wrote:Спасибо большое за советы.
1-й пункт я попробую. А вот по второму если можно по подробнее.
Можно и подробнее, хотя там все просто:
1. Открываем скин (у вас вроде как FM), используемый в проге, в редакторе.
2. Создаем новую секцию (Image 1) и называем ее как угодно.
3. Копируем параметры нужной панели (я выбрал PANEL). Для этого заходим в настройки секции нужной панели, переходим в Manual Edit и копируем все оттуда (Image 2).
4. Возвращаемся в созданную новую секцию и в тот же раздел (Manual Edit) вставляем скопированное (Image 3).
5. Теперь нужно файл с картинкой (jpg или bmp) перенести в папку с текущим скином. Папка для скинов определяется в настройках редактора (Image 5).
В этой папке будут подпапки со всеми скинами, которые создаются в редакторе. То есть, если Вы в настройках укажете путь для скинов “C:MySkins”, то папка Вашего скина (в данном случае FM) будет находиться в “C:MySkinsFM”. Вот туда и нужно будет скопировать картинку (текстуру).
6. Далее в нашей секции заходим в Normal State и кликаем на поле с выбором текстуры (Image 4).
7. Появляется окошко, в котором спрашивается “текстуру будем брать из MasterBitmap скина?”. Отвечаем “Нет” и выбираем файл картинки из папки скина.
8. Осталось только установить 100% непрозрачности текстуре, а градиенту 0% (или вообще градиент убрать – кнопка с крестиком рядом). Image 6.
9. Сохраняем скин и выбираем его в программе. Редактируемые скины можно будет найти в папке “С:MySkins”, которую и указать в проге (на первое время, потом все равно нужно будет скин встроить в прогу).
Остальное должно быть понятно) Если не ошибаюсь, там везде нужно будет соглашаться просто.
TCountParticipant'Geba' wrote:Доброго времени суток.
Подскажите пожалуйста как решить эту проблему. :a8:
Доброго.
Лично я вижу два решения:
1. Выводить рисунок не через Image. Вообще убрать Image с панели, а рисунок выводить через событие OnPaint панели. Так получится и сократить память, которую жрет сам Image, и рисунок на нем.
2. В редакторе скинов создать секцию, подобную панели, и в качестве текстуры присвоить ей рисунок. Данную секцию присвоить панели в программе.
-
AuthorPosts