Пример скрипта для работы с битами
Изменение параметров кнопки
begin
// если нулевой бит равен 1
if GetBit(DWORD.Value, 0) then // DWORD - это переменная с которой нужно работать а 0 - номер бита этой переменной
begin // меняем свойства кнопки в отпущенном состоянии
Button.States[0].Color := RGB(0,95,88); // цвет кнопки
Button.States[0].BorderColor := RGB(0,95,88); // цвет бордюра кнопки
Button.States[0].FontStep := 0; // выстовляем интервал между симолами
Button.States[0].Caption := 'Авто вкл.'; // пишем надпись на кнопке
Button.States[0].Icon := 69; // выбираем иконку
end
else
// если нулевой бит равен 0
begin // меняем свойства кнопки в отпущенном состоянии
Button.States[0].Color := RGB(60,70,80); // цвет кнопки
Button.States[0].BorderColor := RGB(60,70,80); // цвет бордюра кнопки
Button.States[0].FontStep := 3; // выстовляем интервал между симолами
Button.States[0].Caption := 'Авто'; // пишем надпись на кнопке
Button.States[0].Icon := 0; // выбираем иконку
end;
end.
Нужно только создать любой элемент сделать его скрытым и присвоить ему переменную отвечающию за состояние кнопок.
Вновь созданному элементу присвоить выше изложенный скрипт.
Izergill, цвет кнопки, как и цвет границы кнопки меняются для каждого состояния отдельно, т.к. кнопка в разных состояниях может принимать разные цвета. Универсальный скрипт для смена цвета кнопки будет выглядеть так:
var
aButton: TM_Button;
begin
if Sender is TM_Button then // убедились, что скрипт вызван объектом Кнопка (TM_Button)
begin
aButton := TM_Button(Sender); // берём в aButton объект Sender приведённый к типу кнопки
{ меняем цвет границы нулевого состояния в зависимости от значения 4 бита переменной, с которой связана кнопка }
if GetBit(aButton.ValueAsInt, 4) then
aButton.States[0].BorderColor := clGreen
else
aButton.States[0].BorderColor := RGB(92, 92, 92);
end;
end.