1 (edited by agatlogic101 2020-02-28 19:44:34)

Topic: упростить код

Есть участок кода из 31 строки
begin
задача_люди.d1.Checked := False;
задача_люди.d2.Checked := False;
задача_люди.d3.Checked := False;
задача_люди.d4.Checked := False;
задача_люди.d5.Checked := False;
........................................................
задача_люди.d31.Checked := False;
end;
Всё работает, но смущает обьём. Есть возможность как то записать этот код через цикл? Или так и оставлять и это нормально?

Re: упростить код

Чтобы установить значение для всех CheckBox-ов на форме

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
    i, c: integer;
begin
    for i := 0 to Form1.ComponentCount-1 do
        if Form1.Components[i] is TdbCheckBox then TdbCheckBox(Form1.Components[i]).Checked := False;
end;
Dmitry.

3 (edited by agatlogic101 2020-02-28 20:28:06)

Re: упростить код

а если не на форме а на Panel? Возможно? Или если нет, то только с CheckBox1 по CheckBox31

Re: упростить код

Возможно

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
    i, c: integer;
begin
    for i := 0 to Form1.Panel1.ControlCount-1 do
        if Form1.Panel1.Controls[i] is TdbCheckBox then TdbCheckBox(Form1.Panel1.Controls[i]).Checked := False;
end;
Dmitry.