"Пробежаться" по checkbox'ам

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

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

"Пробежаться" по checkbox'ам

Сообщение bestonix » 14.03.2012 11:58:19

Здравствуйте.

В StringGrid'е создал колонку со свойством cbsCheckboxColumn
В процессе работы значения чекбоксов меняются.
Как в итоге "пробежаться" по всем чекбоксам и выяснить их состояние ?

Lazarus IDE 0.9.31 FPC 2.4.3
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: "Пробежаться" по checkbox'ам

Сообщение WAYFARER » 15.03.2012 10:57:25

Перебрать все чекбоксы в цикле?
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: "Пробежаться" по checkbox'ам

Сообщение bestonix » 15.03.2012 11:10:18

WAYFARER писал(а):Перебрать все чекбоксы в цикле?

Да.
Т.е. как обратиться к полю как к объекту типа TCheckBox.
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: "Пробежаться" по checkbox'ам

Сообщение cepreu » 15.03.2012 13:05:58

Поробуй так:
for i:=0 to checklistbox1.Count-1 do
begin
if checklistbox1.Checked[i] then
begin
showmessage(checklistbox1.Items.Strings[i]);
end;
end;

end;
cepreu
новенький
 
Сообщения: 24
Зарегистрирован: 01.05.2007 13:20:15
Откуда: г.Киев

Re: "Пробежаться" по checkbox'ам

Сообщение Vadim » 15.03.2012 13:09:23

cepreu
Похоже Вы невнимательно прочитали первое сообщение. ;)
Чекбоксы находятся внутри ячеек StringGrid.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: "Пробежаться" по checkbox'ам

Сообщение Brainenjii » 15.03.2012 13:50:02

Как по обычным строкам. '1' - выделенный CheckBox, '0' - не выделенный, '' - среднее значение:
Код: Выделить всё
Procedure TForm1.FormCreate(Sender: TObject);
Begin
  fGrid := TStringGrid.Create(Application);
  With fGrid Do
    Begin
      Parent := Self;
      Align := alClient;
      Columns.Add.ButtonStyle := cbsCheckboxColumn;
      Options := Options + [goEditing];
      RowCount := 5;
    End;

  fButton := TButton.Create(Application);
  With fButton Do
    Begin
      Parent := Self;
      Align := alTop;
      OnClick := @ButtonClick;
    End;
end;

Procedure TForm1.ButtonClick(Sender: TObject);
Var
  i: integer;
  aBuffer: String = '';
Begin
  For i := 0 To fGrid.RowCount - 1 Do
    aBuffer +=  fGrid.Cells[1, i] + ';';
  Caption := aBuffer;
end;
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: "Пробежаться" по checkbox'ам

Сообщение bestonix » 15.03.2012 14:10:55

>Brainenjii

Благодарю за помощь. Всё получилось
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск


Вернуться в Lazarus

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 236

Рейтинг@Mail.ru