Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Заполнение массива компонентов TComponent в Delphi одной процедурой

Delphi , Синтаксис , Циклы

При работе с большим количеством компонентов одного типа в Delphi часто возникает необходимость заполнить массив этих компонентов. Обычно для этого используются массивы, но если вам нравится быстрый копирование и вставка, вы можете заполнить такие массивы, используя возможности TComponent с помощью одной процедуры.

В этом примере мы рассмотрим, как заполнить массив редакторов (TEdit) на форме одним вызовом процедуры.

Type
  TForm1 = class
    editsset1: array of tedit;
  end;

type
  TControlDynArray = Array of TControl;

procedure LoadArray(root: TComponent; var x: TControlDynArray; basename: string; i1, i2: integer);
var
  l, i: integer;
begin
  l := i2 - i1 + 1;
  SetLength(x, l);
  for i := i1 to i2 do
    begin
      x[i - i1] := TControl(root.FindComponent(basename + IntToStr(i)));
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Загружает edit1..31 в editsset1[0] ... editsset[30]
  LoadArray(self, TControlDynArray(editsset1), 'Edit', 1, 31);
end;

В этом примере мы определили процедуру LoadArray, которая принимает в качестве параметров корневой компонент, динамический массив компонентов, базовое имя компонентов, а также начальный и конечный индексы компонентов, которые нужно загрузить в массив.

Внутри процедуры мы рассчитываем длину массива и устанавливаем ее с помощью SetLength. Затем мы перебираем все компоненты в заданном диапазоне и добавляем их в массив с помощью FindComponent и приведения типа TControl.

Наконец, в обработчике события FormCreate мы вызываем LoadArray, передавая в качестве параметров текущую форму, динамический массив наших редакторов, имя "Edit", а также начальный и конечный индексы (1 и 31 соответственно).

Подтвержденный ответ: Да, такой подход возможен и может упростить заполнение массивов компонентов в Delphi. Альтернативный ответ: Использование обычных массивов для заполнения компонентов.

Пример кода на Object Pascal (Delphi) выше демонстрирует, как заполнить массив компонентов TComponent одной процедурой. Пример кода использует TControl для обобщенного доступа к компонентам и FindComponent для поиска компонентов по имени. Обратите внимание, что данный код не был протестирован, но он основан на рабочем коде и должен работать без ошибок.

Создано по материалам из источника по ссылке.

Пример кода на Object Pascal (Delphi) показывает, как заполнить массив компонентов TComponent одним вызовом процедуры, используя TControl для доступа к компонентам и FindComponent для их поиска по имени.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Циклы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 16:09:12/0.0031938552856445/0