Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.06.2009, 05:11
WMaxaW WMaxaW вне форума
Прохожий
 
Регистрация: 24.05.2009
Сообщения: 10
Репутация: 10
По умолчанию Как обратится к обьектам созданным в режиме run-time

есть двумерный массив чекбоксов. Но так как я дятел и не поняла как теперь обратится к ним прошу помощи, мож кто обьяснит
код создания вот
Код:
 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: Где теги?

Последний раз редактировалось Admin, 06.06.2009 в 10:45.
Ответить с цитированием
  #2  
Старый 06.06.2009, 07:27
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Думаю, также, как и создавали
Узнаете номера нужного чекбокса и работаете с ним.
Например
Код:
if cb[1,2].Checked then ...
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #3  
Старый 06.06.2009, 10:26
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Karsh, в случае, если массив cb объявлен как глобальная переменная, — да. Если же это локальная переменная, следует при создании задавать CheckBox'ам имена, а обращаться, например, с помощью метода FindComponent.
Ответить с цитированием
  #4  
Старый 06.06.2009, 11:30
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Nyctos Kasignete, точно. Я как-то и не подумал.
На всякий случай поясню, как пользоваться FindComponent
Код:
if (FindComponent('cb12') as TCheckBox).Checked then ...
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #5  
Старый 06.06.2009, 18:04
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
Счастье

эээ, товарисч. Сначала ищем. Потом проверяем, нашли ли хоть что-то? (<>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  
Старый 06.06.2009, 19:42
WMaxaW WMaxaW вне форума
Прохожий
 
Регистрация: 24.05.2009
Сообщения: 10
Репутация: 10
По умолчанию

Всем пасиба за помощь ))
Ув. Админы на счет тегов извеняюсь , обещяю исправиться.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025