Как надежно менять цвет текста подсказки в RadioButton ?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Как надежно менять цвет текста подсказки в RadioButton ?

Сообщение Alex2013 » 31.03.2024 00:26:03

Sharfik писал(а):
Alex2013 писал(а):Режим повышенной контрастности и все прочие должно по идее включается специальной настройки "стандартные цвета" отключающей все "свистелки мигалки" под корень . А ценителям авторских и нестандартных настроек нужны темы и полная настройка цветов.

Если программа для узкого круга - что угодно, если программа на широкий круг - надо учитывать потребности людей с проблемами зрения. Вот я к чему. И для нас самый дешевый по времени вариант - стандартные темы ОС.
Ставил тут Linux с KDE и шкуркой как будто Vista. Наиболее похожий просто вариант на Windows для пожилого человека. Так при масштабировании 125% эта шняга в заголовке начала глючить :((

По проблеме - только сторонние компоненты изучать. Можно в Typhon покопать что там есть, и если кто в лазарус перекинуть компоненты.


GetSysColor в помощь !
(Элементарная штука,все описано проблем быть не должно - щелчок переключателя и "цвета стандартные" из тобишь "из темы")
https://autoit-script.ru/docs/libfuncti ... scolor.htm
Зы
Нормальная "Темная тема" вообще по идее заметно контрастнее "стандартной ". Но если нравится(или если кто-то просто привык что чаще) к "белесой стандартной" ( хотя кстати для виды начиная с 8-10-й где есть "темная тема " она таковой она уже давно НЕ ЯВЛЯЕТСЯ ) то нет никаких проблем в ее использовании и тем более использование контрастной и монохромной ( от которой кстати все забыли но она есть ) . ИМХО Все просто, есть программы которые просто невозможно нормально использовать в единообразной композиции "стандарт 98-Хп" (В ХП (и даже Вин 98) кстати все настраивалось без малейший проблем Так что это все просто деградация дизайна винды "свистелок" куча, а простые и реально удобные функции начали куда-то загадочно продать еще в Висте... Вот на фига! Это же самый настоящий эгоизм ( а то и садизм!) и лень монополистов! "КиберПанк который мы заслужили !!!" )

Добавлено спустя 32 минуты 51 секунду:
Sharfik писал(а):Linux с KDE
...это извините, понты!
(Память и ресурсы жрет как не в себя софт вечно глючит но фишек и фенечек куча ! )

Чем вам XFCE не угодил? (Не идеально но функционально и банально проще, "рабочая лошадка" и точка )
Windows 10 theme with Xfce
Изображение
Windows 8 theme with Xfce
http://ic.pics.livejournal.com/megazuz/ ... iginal.png
Windows XP theme with Xfce
https://www.omgubuntu.co.uk/wp-content/ ... 2880-1.png
Windows 98 theme with Xfce
https://images.pling.com/img/00/00/62/6 ... enshot.png
Alex2013
долгожитель
 
Сообщения: 2958
Зарегистрирован: 03.04.2013 11:59:44

Re: Как надежно менять цвет текста подсказки в RadioButton ?

Сообщение Alex2013 » 03.04.2024 18:06:57

(Выделил продолжение в отдельный пост, а то куча-мала образовалась )

Винда в своем репертуаре ! Установка текущего элемента списка RadioButton сбиваете прядок перехода с помощью стрелок ! Это вообще уму непостижимо ! :idea:
...
Сделал заплатку.
Код: Выделить всё
//В  FormCreate  TRadioButton(myControl).OnChange:=@ControlChange;

procedure TForm1.ControlChange(Sender: TObject);
Const
F:Boolean=False;
var
I:Integer;
begin
if f then exit; F:=True;
//...
If Sender.ClassType=TRadioButton then
begin
For I:=0 to  Tpanel( TRadioButton(Sender).Owner).ControlCount-1 do
TRadioButton( Tpanel( TRadioButton(Sender).Owner).Controls[i]).TabOrder:=I;
end;
F:=False;
end;     

Но это реально "дурдом на выезде"!
( Как там песня "Ощущение прострации с танцами нации... где же этот семафор ван ту фри фор! "
Ум за разум заходит.. )
Зы
Кто-то знает чем ComponentIndex от TabOrder отличается ?

....

Еще один глюк ...
Оказывается что надежно переключение фокуса работает только если в начале установить фокус на родительской панельке/форме.
(то что это надежно еще неточно(винда такая винда ) но поймать "сбой фокуса" как часто получалось без этого патча я не смог)
Код: Выделить всё
TWinControl(myControl.Owner).SetFocus;
myControl.SetFocus;

Изображение
Alex2013
долгожитель
 
Сообщения: 2958
Зарегистрирован: 03.04.2013 11:59:44

Re: Как надежно менять цвет текста подсказки в RadioButton ?

Сообщение Sharfik » 03.04.2024 19:07:16

Alex2013 писал(а):Чем вам XFCE не угодил?

Тем что мне надо было быстро поставить и забыть. А не тратить еще часы на изучение нового "зверя" и надежду что там тоже можно настроить Winподобный стиль. Смотрится конечно красиво, но думаю если начать раскачивать на масштабирование, нестандартные ситуации, то как большинство ПО - плохо себя вести начнет. Шкуры из "сообществ" же идут, а там никто их тестить не станет и допиливать. По затрате ресурсов ничего плохого о Rosa c KDE не скажу, по любому меньше чем Win10.

https://linuxthebest.net/kde-plasma-y-x ... nenye-sredы-rabochego-stola-dlya-polzovatelej-linux/
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 767
Зарегистрирован: 20.07.2013 01:04:30

Re: Как надежно менять цвет текста подсказки в RadioButton ?

Сообщение zub » 04.04.2024 11:49:30

Наверно я повторюсь, но есть https://github.com/zamtmn/metadarkstyle Неустраивает? Почему?
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Как надежно менять цвет текста подсказки в RadioButton ?

Сообщение Alex2013 » 04.04.2024 13:08:12

zub писал(а):Наверно я повторюсь, но есть https://github.com/zamtmn/metadarkstyle Неустраивает? Почему?

Спасибо, что напомнил ! Устраивает но задачка тут по идее пока слишком простая для того чтобы тянуть лишнее компоненты.
(Некий полу-абстрактный модуль редактора настроек )
Плюс совместмость со старыми ОС критична , но вообще гляну возможно MetaDarkStyle будет лучше или проще (хотя там кажется даже с не самыми новыми ( но и не сказать что особо старыми) релизами Вин10 были проблемы, а мне нужна совместить минимум с Вин 7 а желательно и с ХП))
Зы
А ещё кроме цвета я столкнулся с тем что в RadioButton портится прядок выбора (хотя возможно что только при динамическом создании RB) и с тем что есть проблемы с фокусом, а это "готовая темная тема" никак не исправит .
Зы Зы
Кстати идея ! Возможно, что проблемы совместимостью в "MetaDarkStyle" можно исправить так-же как я "в ручную" включил "темный фон" в RadioButton.То бишь пропатчить все компоненты через UxTheme.SetWindowTheme(TWinControl(MyCurrentControl).Handle,nil,'');
(Проверено, на свежем и обновляемом Windows 11 это фокус тоже работает )
Alex2013
долгожитель
 
Сообщения: 2958
Зарегистрирован: 03.04.2013 11:59:44

Re: Как надежно менять цвет текста подсказки в RadioButton ?

Сообщение zub » 04.04.2024 22:41:05

По поддержке ос - да, только начиная с W10 1809
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Как надежно менять цвет текста подсказки в RadioButton ?

Сообщение Alex2013 » 08.04.2024 21:46:46

Присобачил запись и "откат записи" при этом наблюдал забавный но странный эффект ( нагромождения панелей в кучу-малу ) при перерисовке.
Победил добавив ScrollBox1.Hide;... ScrollBox1.Show; и поправив фон формы.
Код: Выделить всё
procedure TForm1.Label2Click(Sender: TObject);// "кнопка " [b]Отменить [/b]
Var
BS:String;
C:TControl;
begin

Label1.Font.Color:= clRed;
BS:=ChangeFileExt(FNSetup,'.bak');
If FileExists(BS) then begin
If FileExists(FNSetup) then DeleteFile(FNSetup);
if RenameFile(BS,FNSetup) then begin
ScrollBox1.Hide;
While ScrollBox1.ControlCount >0 do begin
C:=ScrollBox1.Controls[0];
ScrollBox1.RemoveControl(C);
C.Free;
end;
Self.FormCreate(Application);
ScrollBox1.Show;
Self.FormActivate(Application);
  end
end
end;
end.                                                               

Но интересно нет ли метода без лишних затей отключить перерисовку на время повторного динамического заполнения формы?
(Что-то на подобии ListView.BeginUpDate; ... ListView.EndUpDate; но для всей формы или отдельной панели )
(Да можно было написать процедуру повторного заполнения данных без перезаполнения формы но из за динамического создания это такая докука... ( и так пришлось писать довольно хитрую процедуру "чтения для записи" ) )
Зы
Кстати никто случайно не знает, как получить доступ к красивому и явно стандартному переключателю "Вкл"/"Откл" из настроек винды?
Изображение

Добавлено спустя 1 час 9 минут 33 секунды:
Oh mein Gott! :idea: Кстати классный немецкий форум о программировании в Лазарус !
https://www.lazarusforum.de/viewtopic.p ... 5&start=60
Alex2013
долгожитель
 
Сообщения: 2958
Зарегистрирован: 03.04.2013 11:59:44

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

Рейтинг@Mail.ru