Тема: 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
Для відправлення відповіді ви повинні увійти або зареєструватися