Тема: Delphi Xe Скоротити код
Можна якось його скоротити через цикол пустить
Panel[1] := Panel1;
............
Panel[64] := Panel64;Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Pascal/Delphi → Delphi Xe Скоротити код
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Можна якось його скоротити через цикол пустить
Panel[1] := Panel1;
............
Panel[64] := Panel64;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';64 панелі вже легше динамічно створювати...
Ага, тут явно динаміка проситься: Жизнь и смерть в режиме run-time.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися