FreeBasic
Главная
Вход
Регистрация
Четверг, 28.03.2024, 14:32Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Библиотеки для FreeBasic » Библиотека Window9 для Freebasic » функция SetGadgetColor (странно работает)
функция SetGadgetColor
VitaminДата: Пятница, 24.02.2023, 20:44 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 55
Репутация: 4
Статус: Offline
функция меняет цвет текста CheckBoxGadget только до цикла ожидания событий окна, а в теле цикла почему-то не срабатывает, вот пример:
Код
#Include "window9.bi"
CenterWindow(OpenWindow("",10,10,260,100))
CheckBoxGadget(1,10,10,82,18,"Выбор")
TextGadget(2,100,20,50,50,"ggg")

'SetGadgetColor(1,0,255,2)
'SetGadgetColor(2,0,255,2)

Do
  Var event=WaitEvent()   
   If event=EventGadget Then
      If EventNumber = 1 Then
         If GetGadgetState(1) = 1 Then ' если галка включена 
            ?"+"
            SetGadgetColor(1,0,255,2) ' красный цвет текста
            SetGadgetColor(2,0,255,2)
         Else ' выключена
            ?"-"
            SetGadgetColor(1,0,65280,2) ' зелёный цвет текста
            SetGadgetColor(2,0,65280,2)
         EndIf
      EndIf
   EndIf
  If event=eventclose Then End
Loop

при этом TextGadget отрабатывает нормально, чего для CheckBoxGadget не хватает?
 
haavДата: Пятница, 24.02.2023, 21:51 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Как только смогу , я сделаю исправление. А пока можно для CheckBoxGadget после вызова SetGadgetColor применить InvalidateRect(GadgetID(1) , 0 , 1) . В данном случае обновится гаджет с номером 1. Если нужно обновить другой , то номер в GadgetID должен быть другим.

Ты в каком редакторе пишешь? Код содержит некорректные символы. Возможно форум косячит , но почему-то мне кажется , что было написано в FbEdit.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
VitaminДата: Пятница, 24.02.2023, 21:53 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 55
Репутация: 4
Статус: Offline
ОК, попробую
да, FbEdit

Добавлено (25.02.2023, 12:15)
---------------------------------------------
да, так работает 

Код
#Include "window9.bi"

CenterWindow(OpenWindow("",10,10,260,100))
CheckBoxGadget(1,10,10,82,18,"Выбор")

Do
  Var event=WaitEvent()   
   If event=EventGadget Then
      If EventNumber = 1 Then
         If GetGadgetState(1) = 1 Then ' если галка включена 
            SetGadgetColor(1,0,&h0000FF,2) ' красный цвет текста
         Else ' выключена
            SetGadgetColor(1,0,&h00C000,2) ' зелёный цвет текста
         EndIf
         InvalidateRect(GadgetID(1),0,1)
      EndIf
   EndIf
  If event=eventclose Then End
Loop

однако если изменить стиль windows при помощи .manifest, то цвет перестаёт меняться
видимо не судьба ...


Сообщение отредактировал Vitamin - Пятница, 24.02.2023, 21:53
 
haavДата: Суббота, 25.02.2023, 16:03 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата Vitamin ()
однако если изменить стиль windows при помощи .manifest, то цвет перестаёт меняться
видимо не судьба ...


Я вообще не парюсь с манифестами (пофиг на них). Мне уже много раз писали , типа почему ты не используешь манифест в своих программах. Ну так вот, ты отыскал как минимум одну причину.
Кстати , я сделал исправление и обновил библиотеку , теперь не должно быть проблем с цветами у кнопок.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
Форум » Библиотеки для FreeBasic » Библиотека Window9 для Freebasic » функция SetGadgetColor (странно работает)
  • Страница 1 из 1
  • 1
Поиск: