Topic: Подсветка найденной строки

Добрый день! Подскажите, как выделить определенным цветом строку в гриде, найденную встроенным механизмом поиска (по клику правой кнопки).
Спасибо.

Re: Подсветка найденной строки

Приветствую,


к сожалению в текущей версии это сделать не получится, а с чем связана данная необходимость?

Dmitry.

Re: Подсветка найденной строки

На основной грид очень много записей и оператор по определенному полю находит нужную, чтобы добавить недостающие данные. Так вот, найденная строка выделяется, но очень бледно, почти не заметна среди остальных записей.

Re: Подсветка найденной строки

напишите на вкладке Скрипт данный код

begin
     Form1.TableGrid1.InactiveSelectionColor := clRed;
end.

имена компонентов замените на свои, в данном примере цвет выделения будет красным, для выбора другого цвета:


Для того, чтобы указать произвольный цвет, можно воспользоваться шестнадцетиричным числом
пример: Form1.TableGrid1.InactiveSelectionColor := $00DDEEFF;


Список текстовых обозначений цвета:
clBlack Чёрный
clMaroon Тёмно-красный
clGreen Зелёный
clOlive Оливковый
clNavy Тёмно-синий
clPurple Пурпурный
clTeal Стальной
clGray Серый
clSilver Серебряный
clRed Красный
clLime Ярко-зелёный
clYellow Жёлтый
clBlue Синий
clFuchsia Фиолетовый
clAqua Бирюзовый
clWhite Белый


Список системных цветов, определяются настройками стиля Windows:
clActiveBorder
clActiveCaption
clAppWorkSpace
clBackground
clBtnFace
clBtnHighlight
clBtnShadow
clBtnText
clCaptionText
clGradientActiveCaption
clGradientInactiveCaption
clGrayText
clHighlight
clHighlightText
clHotLight
clInactiveBorder
clInactiveCaption
clInactiveCaptionText
clInfoBk
clInfoText
clMenu
clMenuBar
clMenuHighlight
clMenuText
clScrollBar
cl3DDkShadow
cl3DLight
clWindow
clWindowFrame
clWindowText

Dmitry.

Re: Подсветка найденной строки

Спасибо за помощь! Всё ОК.

Re: Подсветка найденной строки

DriveSoft wrote:

напишите на вкладке Скрипт данный код

begin
     Form1.TableGrid1.InactiveSelectionColor := clRed;
end.

имена компонентов замените на свои, в данном примере цвет выделения будет красным, для выбора другого цвета:


Для того, чтобы указать произвольный цвет, можно воспользоваться шестнадцетиричным числом
пример: Form1.TableGrid1.InactiveSelectionColor := $00DDEEFF;


Список текстовых обозначений цвета:
clBlack Чёрный
clMaroon Тёмно-красный
clGreen Зелёный
clOlive Оливковый
clNavy Тёмно-синий
clPurple Пурпурный
clTeal Стальной
clGray Серый
clSilver Серебряный
clRed Красный
clLime Ярко-зелёный
clYellow Жёлтый
clBlue Синий
clFuchsia Фиолетовый
clAqua Бирюзовый
clWhite Белый


Список системных цветов, определяются настройками стиля Windows:
clActiveBorder
clActiveCaption
clAppWorkSpace
clBackground
clBtnFace
clBtnHighlight
clBtnShadow
clBtnText
clCaptionText
clGradientActiveCaption
clGradientInactiveCaption
clGrayText
clHighlight
clHighlightText
clHotLight
clInactiveBorder
clInactiveCaption
clInactiveCaptionText
clInfoBk
clInfoText
clMenu
clMenuBar
clMenuHighlight
clMenuText
clScrollBar
cl3DDkShadow
cl3DLight
clWindow
clWindowFrame
clWindowText


Возможно ли переопределить значения cl*** приведенные выше своей палитрой? Или они напрямую указывают на системные значения?

Re: Подсветка найденной строки

konstantin wrote:

Возможно ли переопределить значения cl*** приведенные выше своей палитрой? Или они напрямую указывают на системные значения?

Это предопределенные константы из Delphi

Визуальное программирование: блог и телеграм-канал.

Re: Подсветка найденной строки

Да, это возможно.
Я использую программу Color Sizer, чтобы получить шестнадцатеричный цветовой код для Delphi.
Просто возьмите ручку и подведите ее к желаемому цвету и код будет получен.
Вы можете получить его здесь:
http://www.alexnolan.net/software/colorseizer.htm

Извините, перевел гугл.

begin
     Form1.TableGrid1.InactiveSelectionColor := $006845ED;
end.

Re: Подсветка найденной строки

lejoso wrote:

Да, это возможно.
Я использую программу Color Sizer, чтобы получить шестнадцатеричный цветовой код для Delphi.
Просто возьмите ручку и подведите ее к желаемому цвету и код будет получен.
Вы можете получить его здесь:
http://www.alexnolan.net/software/colorseizer.htm

Извините, перевел гугл.

begin
     Form1.TableGrid1.InactiveSelectionColor := $006845ED;
end.

Речь была о другом: можно ли переопределять значения констант, например clRed?

clRed := $006845ED;  // не работает

It was about something else: is it possible to override the values of constants, for example clRed?


Google sometimes fails)))

Визуальное программирование: блог и телеграм-канал.

Re: Подсветка найденной строки

k245 wrote:
konstantin wrote:

Возможно ли переопределить значения cl*** приведенные выше своей палитрой? Или они напрямую указывают на системные значения?

Это предопределенные константы из Delphi

Спасибо!

To lejoso
Thanks for answer. I know this method. Idea was to override the Delphi values for fast color switching in interface without long scripting.

Я, кстати, до сих пор не нашел, как обойти ограничения Windows 10 и поменять цвета заголовков таблицы, комбобоксов и кнопок...

11 (edited by k245 2021-07-09 06:56:42)

Re: Подсветка найденной строки

konstantin wrote:

Я, кстати, до сих пор не нашел, как обойти ограничения Windows 10 и поменять цвета заголовков таблицы, комбобоксов и кнопок...

Цвет заголовка таблицы поменять можно:

procedure SetHeaderColor(AObject: TObject; AColor: TColor);
// закрасить заголовок таблицы в указанный цвет
var
  tmpGrid: TdbStringGridEx;
  i: integer;
begin
  tmpGrid := TdbStringGridEx(AObject);
  for i := 0 to tmpGrid.Columns.count - 1 do
  begin
    tmpGrid.Columns[i].Header.Color := AColor;
  end;
end;

....
AGrid.HeaderStyle := hsFlatBorders;  // нужен плоский заголовок
....

procedure RoundedGrid_OnChange(Sender: TObject);
// действия по умолчанию
begin
  SetHeaderColor(Sender, Colors_Get(GRID_HEADER_COLOR)); // установить цвет для заголовка
end;

Я, правда, не тестировал это на Win10.


Но нельзя поменять цвет линий сетки (((


С кнопками и комбиками тоже беда, цвета не меняются - пришлось их заменять на другие, "послушные" компоненты.


Кстати, как вариант попробуйте выбрать тему цветового оформления проекта - возможно, это вас устроит. В теме меняются все цвета, за исключением полос прокрутки грида. ( ох уж эти полосы - головная боль... ).

Визуальное программирование: блог и телеграм-канал.

Re: Подсветка найденной строки

k245 wrote:

Grid.HeaderStyle := hsFlatBorders;  // нужен плоский заголовок


Я, правда, не тестировал это на Win10.

Протестировал на Windows 10 - в общем, headerStyle - главное условие окрашивания... Спасибо.