TCheckGroup/ru
From Free Pascal wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
日本語 (ja) │
русский (ru) │
中文(中国大陆) (zh_CN) │
TCheckGroup является элементом управления, который содержит группу элементов TCheckBox, объединенных вместе физически и логически.
Использование
Для использования элемента TCheckGroup на форме, вы можете просто выбрать его на вкладке Standard палитры компонентов и поместить на форму щелчком мыши.
Небольшой пример
В данном примере демонстрируется смена цвета фона формы. Цвет фона определяется добавлением соответствующего компонента цвета:
- создайте новое приложение и поместите TCheckGroup на форму
- в Инспекторе Объектов измените свойство Name с CheckGroup1 на cgRed и заголовок на Red
- добавьте флажки (элементы TCheckBox) для элемента cgRed:
- в Инспекторе Объектов выберите свойство Items элемента cgRed
- щелкните по кнопке [...]; откроется диалоговое окно ввода строк
- напишите одно за другим числа 1 2 4 8 16 32 64 128 и после завершения нажмите кнопку OK
- скопируйте элемент cgRed, щелкнув по нему правой кнопкой мыши и выберите пункт Копировать
- щелкните правой кнопкой мыши по форме и выберите пункт Вставить; в результате появится элемент с именем cgRed1
- теперь измените свойство Name с cgRed1 на cgGreen и свойство Caption на Green
- точно также вставьте ещё элемент и измените свойство Name на cgBlue и свойство Caption на Blue
- всякий раз при щелчках по элементам CheckBox будет меняться цвет:
- в Инспекторе Объектов создайте обработчик события OnItemClick элемента cgRed с помощью щелчка по кнопке [...] рядом с пунктом OnItemClick
- для элементов cgGreen и cgBlue также укажите этот же обработчик события, выбрав cgRedItemClick из раскрывающегося списка
- напишите следующий код в обработчике события:
procedure TForm1.cgRedItemClick(Sender: TObject; Index: integer);
var
i, c: Integer;
begin
c := $000000; // изначально зададим черный цвет
for i := 0 to 7 do begin // проверяем элементы 0..7 во всех элементах CheckGroup
if cgRed.Checked[i] then c := c + 1 shl i; // количество значений для красного цвета $000000..$0000FF
if cgGreen.Checked[i] then c := c + 1 shl (i + 8); // количество значений для зеленого цвета $000000..$00FF00
if cgBlue.Checked[i] then c := c + 1 shl (i + 16); // количество значений для синего цвета $000000..$FF0000
end;
Color := c;
end;
- запустите программу. Должно выглядеть так:
См. также