Тема: Delphi Xe Скоротити код

Можна якось його скоротити через цикол пустить

Panel[1] := Panel1;
............
Panel[64] := Panel64;

2

Re: Delphi Xe Скоротити код

Міжна і через цикол

var
 cmp:TComponent;
 i:Integer;
begin
  for I := 1 to 64 do
  begin
    cmp := FindComponent('Panel'+IntToStr(i));
    Panel[i] := TPanel(cmp);
  end;
end;

Але це погана практика, бо, я так розумію, масив "Panel[]" то буде масив компонентів типу TPanel? краще зразу працюйте через вказівники.



От для наглядності:

var
 cmp:TComponent;
 i:Integer;
begin
  for I := 1 to 64 do
  begin
    cmp := FindComponent('Panel'+IntToStr(i)); //шукаємо компонент з ім'ям Panel + i, і берем його вказівник
    TPanel(cmp).Caption := 'SomeCaption'; //просто вказуємо, з яким об'єктом працюємо.
  end;
end;


Можна все в кучу зібрати (але читати важко буде, а дебажити ще гірше).

TComponent(FindComponent('Імя компонента').Caption := 'SomeCaption';
x
Подякували: Stanislav Stecenko1

3

Re: Delphi Xe Скоротити код

64 панелі вже легше динамічно створювати...

Подякували: Chemist-i1

4

Re: Delphi Xe Скоротити код

Ага, тут явно динаміка проситься: Жизнь и смерть в режиме run-time.