![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() есть двумерный массив чекбоксов. Но так как я дятел и не поняла как теперь обратится к ним прошу помощи, мож кто обьяснит
![]() код создания вот Код:
x:=45; for i:=1 to 9 do begin for j:=1 to 7 do begin cb[i,j]:=TCheckBox.create(form4.Panel3); cb[i,j].left:=x; cb[i,j].top:=j*30; cb[i,j].Caption:=''; cb[i,j].Name:='cb'+inttostr(j)+inttostr(i); cb[i,j].Parent:=form4.Panel3; cb[i,j].Caption:=''; end; x:=x+50; end; Последний раз редактировалось Admin, 06.06.2009 в 10:45. |
#2
|
||||
|
||||
![]() Думаю, также, как и создавали
![]() Узнаете номера нужного чекбокса и работаете с ним. Например Код:
if cb[1,2].Checked then ... Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#3
|
|||
|
|||
![]() Karsh, в случае, если массив cb объявлен как глобальная переменная, — да. Если же это локальная переменная, следует при создании задавать CheckBox'ам имена, а обращаться, например, с помощью метода FindComponent.
|
#4
|
||||
|
||||
![]() Nyctos Kasignete, точно. Я как-то и не подумал.
На всякий случай поясню, как пользоваться FindComponent Код:
if (FindComponent('cb12') as TCheckBox).Checked then ... Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#5
|
||||
|
||||
![]() эээ, товарисч. Сначала ищем. Потом проверяем, нашли ли хоть что-то? (<>nil) И только затем - свойства. Иначе получите ошибку и непонятно в чём проблема будет.
Правильно (я бы) оформил так Код:
var Component : TObject; begin Component := Form1.FindComponent('CheckBox1'); if Component <> nil then with TCheckBox(Component) do Checked:=True; end; Как вариант для непонятливых Код:
var Component : TObject; begin Component := Form1.FindComponent('CheckBox1'); if Component <> nil then TCheckBox(Component).Checked:=True; end; Либо сразу с приведение типов искать TCheckBox элемент. PS> Пардон, не заметил. Все ЧекБоксы расположены на Form4.Panel3 (судя по коду вверху). Потому и искать надо на этой панельке. Посему Form1.FindComponent заменяй на Form4.Panel3.FindComponent Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() Последний раз редактировалось Ferra, 06.06.2009 в 18:08. |
#6
|
|||
|
|||
![]() Всем пасиба за помощь
![]() Ув. Админы на счет тегов извеняюсь , обещяю исправиться. |