Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2012, 04:35   #11
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

ИМХО бред. Форма - это контейнер. Контейнер ОБЯЗАН иметь метод перебора элементов и досткпа к ним.

Код:
for for i:=0 to form1.ComponentCount -1 do
begin
  //Если компонент явл. CheckBox и имеет имя 
  If (Components[i] is TCheckBox) and (Components[i].Name= 'CheckBox'+IntToStr(<что-то там>) ) then
   begin
(Components[i] as TCheckBox).<свойство CheckBox>:=<значение>;
  end;
end;
Человек_Борща вне форума Ответить с цитированием
Старый 05.02.2012, 04:37   #12
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию

НУ у меня, может, и не совсем правильно, но мне главное, что понятно и работает))
Код:
for i:=1 to 19 do
begin
     (Form6.FindComponent('CheckBox'+IntToStr(i)) as TCheckBox).Checked:=True;
end;
a_n_n_a вне форума Ответить с цитированием
Старый 05.02.2012, 08:49   #13
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от a_n_n_a Посмотреть сообщение
НУ у меня, может, и не совсем правильно, но мне главное, что понятно и работает))
Код:
for i:=1 to 19 do
begin
     (Form6.FindComponent('CheckBox'+IntToStr(i)) as TCheckBox).Checked:=True;
end;
Если у тебя на форме будет: CheckBox1, CheckBox2, CheckBox4 (CheckBox3 не будет)
то когда i=3 - вылезет ошибка

я так понял что ты просто ВСЕ чекбоксы переключаешь(потому как просто перебираешь подряд числа) - по этому тебе достаточно такого кода:

Код:
for for i:=0 to form6.ComponentCount -1 do
begin
  //Если компонент явл. CheckBox
  If (form6.Components[i] is TCheckBox) then (form6.Components[i] as TCheckBox).Checked:=True;
end;
Non est culpa vin, sed culpa bibentis

Последний раз редактировалось Korben5E; 05.02.2012 в 08:55.
Korben5E вне форума Ответить с цитированием
Старый 05.02.2012, 11:06   #14
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

ТС, просто уясните себе, что лучше при поиске компонента проверять его наличие по имени, используя результат функции FindComponent(). При отсутствии компонента с таким именем функция возвращает nil:
Код:
var
  c:TComponent;
for for i:=0 to form6.ComponentCount -1 do
begin
  c:=Form6.FindComponent('CheckBox'+IntToStr(i));
  if c<>nil then (c as TCheckBox).Checked:=True;
end;
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сменить заголовок формы из другой формы F1nZeR C# (си шарп) 4 27.08.2011 11:50
События в WPF. Обращение к компонентам формы из события Casper-SC Общие вопросы .NET 3 25.07.2010 19:03
Из DBGrid одной формы отразить в ListBox на другой формы VenZell БД в Delphi 2 28.05.2010 07:27
Как программно перебрать в цикле все формы в приложении? chandrasecar Общие вопросы Delphi 18 11.09.2009 12:14
Заполнение поле формы автоматически из другой формы!! Магомед Microsoft Office Access 8 28.07.2009 13:49