Как изменить цвета полосы прокрутки в компоненте TWebScrollBox?

У меня есть TWebScrollBox с множеством элементов, но мне не нравятся цвета полосы прокрутки по умолчанию.

Это моя полоса прокрутки на TWebScrollBox:

Вы можете видеть, что полоса прокрутки состоит из двух разных частей:

  • Белый цвет фона
  • И серый свиток и стрелки на переднем плане.

Я хочу изменить цвет обеих вышеупомянутых частей.

Я искал свойство цвета полосы прокрутки, но не смог его найти.

Можно ли как-то изменить цвета полосы прокрутки без использования файла CSS или класса CSS? Я хочу сделать это просто, используя код Delphi.

Снова спрашиваете, как определить CSS, как в Как мне установить встроенный CSS для компонента через Delphi в TMS Web Core? и Как изменить цвет границы компонента TWebButton? и предыдущие вопросы.

AmigoJack 24.03.2024 14:15
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
1
117
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете изменить цвета полосы прокрутки, используя следующий код:

WebScrollBox.ElementHandle.style.setProperty('scrollbar-color','Fuchsia Green');

И это можно превратить в красивую процедуру Delphi следующим образом:

procedure ChangeScrollbarColor(ScrollBox: TWebCustomPanel; ColorThumb, ColorTrack: TColor);
var
  RGB: Integer;
  ColorThumbHex, ColorTrackHex: String;
begin
  RGB := ColorToRGB(ColorThumb);
  ColorThumbHex := '#' + Byte(RGB).ToHexString +
                  Byte(RGB shr 8).ToHexString +
                  Byte(RGB shr 16).ToHexString;

  RGB := ColorToRGB(ColorTrack);
  ColorTrackHex := '#' + Byte(RGB).ToHexString +
                Byte(RGB shr 8).ToHexString +
                Byte(RGB shr 16).ToHexString;

  ScrollBox.ElementHandle.style.setProperty('scrollbar-color',ColorThumbHex + ' ' + ColorTrackHex);
end;

Затем эту процедуру можно легко использовать для изменения цвета полосы прокрутки в компоненте TWebScrollBox. Функция очень хороша, потому что вы можете передавать ей обычные значения Delphi TColor вместо использования цветов HTML.

Вот пример:

begin
  ChangeScrollbarColor(MyScrollBox, clFuchsia, clGreen);
end;

@AmigoJack Это не спам. Я предоставляю реальную процедуру Delphi, которую можно использовать для изменения цвета полосы прокрутки. Это не ответ CSS. Мне нужен был способ сделать это с помощью только кода Delphi, что и дает ответ.

Shaun Roselt 24.03.2024 11:13

Это снова ответ .ElementHandle.style.setProperty(), как и раньше . Превратить TColor в шестнадцатеричный цвет HTML тривиально. Если «это не ответ CSS», то вы не можете использовать scrollbar-color, поскольку это CSS.

AmigoJack 24.03.2024 14:11

Другие вопросы по теме