Форум: "Начинающим";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];
ВнизОбращение к группе объектов Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c