Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.12.26;
Скачать: CL | DM;

Вниз

Обращение к группе объектов   Найти похожие ветки 

 
v_a_belousov   (2010-10-03 23:26) [0]

Здравствуйте! Заранее извиняюсь если ранее тема уже поднималась. Проблема следующая. Есть форма на ней GroupBox в котором находятся CheckBox"сы. Обращаться к каждому из них в виде Ext_CB1.Checked не удобно из за того что CheckBox"ов много а операции с ними необходимо производить схожие. Можно ли каким то другим способом к ним обратиться? Единственное на форме кроме этих CheckBox есть и другие к ним мне обращаться не нужно(но они находятся вне GroupBox)


 
Юрий Зотов ©   (2010-10-03 23:33) [1]

> Можно ли каким то другим способом к ним обратиться?

Возможно, что и можно. Вы дали слишком мало информации, уточните вопрос - что требуется в итоге?


 
v_a_belousov   (2010-10-03 23:38) [2]

Требутся поочередно обратится к каждому CheckBox в GroupBox взять Caption и Checked у CheckBox сделать с ними необходимые операции и так далее... вообщем вот код с нажатия кнопки ок на форме...

procedure TSets_Form.Apply_ButtonClick(Sender: TObject);
//переменные
var RFE: TRegFileExt; i, num: integer;
begin
//регистрируем или восстанавливаем данные
if Ext_CB1.Checked then
begin
 //проверяем существует ли уже такое расширение
 RFE := GetRegisterFileType("pacrf");
 //если да, то сохраняем данные о нем
 if RFE.FExt<>"" then SaveRegisterFileType("pacrf");
 //и меняем данные на свои
 RegisterFileType("pacrf", Application.ExeName, "Pac Reader File", Application.ExeName+" , "+
 IntToStr(1));
end else
begin
 //ищем среди сохраненных
 for i:=0 to Length(RegFileExts)-1 do
  begin
   //если сохраняли, то
   if AnsiLowerCase(RegFileExts[i].FExt)=AnsiLowerCase("pacrf") then
    begin
     //восстанавливаем
     RegisterFileType("pacrf", RegFileExts[i].OpenProgram, RegFileExts[i].FExtDiscription,
     RegFileExts[i].DefaultIcon);
     //запоминаем что восстановили
     num := i;
     //завершаем цикл
     break;
    end;
  end;
 //перебираем массив
 for i:=0 to Length(RegFileExts)-1 do
  begin
   //если элемент меньше убираемого, то
   if i<num then
    begin
     //оставляем его на месте
     RegFileExts[i] := RegFileExts[i];
    end else
    begin
     //если больше, то
     if i>num then
      begin
       //перемещаем его на позицию назад(затирая убираемый)
       RegFiles[i-1] := RegFileExts[i];
      end;
    end;
  end;
 //устанавливаем новую величину массива
 SetLength(RegFileExts, Length(RegFileExts)-1);
end;
end;

Думаю это поможет в объяснении того что мне нужно


 
v_a_belousov   (2010-10-03 23:41) [3]

то есть в Caption CheckBox написано название расширения. В данный момент расширения вбиты от руки...


 
Юрий Зотов ©   (2010-10-03 23:47) [4]


for i := 0 to GroupBox1.ControlCount -1 do
 if GroupBox1.Controls[i] is TCheckBox then
   with TCheckBox(GroupBox1.Controls[i]) do
   begin
     ... // Здесь делаем, что нужно
   end;


Так подойдет?


 
v_a_belousov   (2010-10-03 23:50) [5]

Да. Спасибо большое!


 
Anatoly Podgoretsky ©   (2010-10-04 11:54) [6]

> v_a_belousov  (03.10.2010 23:26:00)  [0]

Может не надо все проверять, а достаточно обрабатывать изменение в
обработчике?


 
v_a_belousov   (2010-10-04 21:18) [7]


> Может не надо все проверять, а достаточно обрабатывать изменение
> в
> обработчике?

То есть?



Страницы: 1 вся ветка

Текущий архив: 2010.12.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.006 c
15-1284560653
Василий Жогарев
2010-09-15 18:24
2010.12.26
Вопрос по C Sharp, если можно )


11-1227257194
heilong
2008-11-21 11:46
2010.12.26
использование fastmove с fastmm4


2-1285737249
ruslan_as
2010-09-29 09:14
2010.12.26
Как начать считывать текстовый файл с нужной строки


2-1285328385
PavDimka
2010-09-24 15:39
2010.12.26
Keywords: record, class, interface, object. Object?


2-1285840973
Рома
2010-09-30 14:02
2010.12.26
idhttp