Удаление всех компонентов определенного класса на форме (Delphi)

Попробуйте использовать команду lookup и переменную для представления region, чтобы выбрать значение из map:

variable region {
   description = "aws region"
   default = "us-east-1"
}

...

vpc_zone_identifier = ["${lookup(var.subnet_ids, var.region)}"]

См. Документацию для получения дополнительных примеров. [114 ]

12
задан Jamo 12 February 2009 в 00:32
поделиться

5 ответов

Вы почти правы. Ваш цикл должен быть похожим

for i := frmMain.ComponentCount - 1 downto 0 do
begin
  if frmMain.Components[i] is TMyClass then
    frmMain.Components[i].Free;
end;

Таким образом, вызов к функции "frmMain. ComponentCount" сделан вначале и не снова.

Необходимо также назвать Свободным как выше, не Уничтожают - я не могу помнить почему в данный момент. Интерфейс базового уровня

27
ответ дан 2 December 2019 в 04:09
поделиться

Запустите наверху и работайте назад.

то есть:

for i := frmMain.ComponentCount - 1 downto 0 do
begin
  if frmMain.Components[i] is TMyClass then frmMain.Components[i].Free;
end; 

Назовите свободными вместо, Уничтожают. Бесплатные вызовы Уничтожают после проверки действительную ссылку.

10
ответ дан 2 December 2019 в 04:09
поделиться

Этого не может произойти в Вашем случае, но if frmMain.Components[i] is TMyClass проверка также возвратит true для классов-потомков TMyClass. При реальном поиске удаления одного определенного класса Вы, возможно, должны добавить дополнительную проверку ClassName.

2
ответ дан 2 December 2019 в 04:09
поделиться

То же решение с циклом с условием продолжения:

i := 0;
while i < frmMain.ComponentCount do
begin
  if frmMain.Components[i] is TMyClass then
    frmMain.Components[i].Free 
  else
    inc(i);
end;
2
ответ дан 2 December 2019 в 04:09
поделиться

Если вам нужно проверить и уничтожить именованный известный компонент Используйте

If YourComponent <> Nil Then
  YourComponent.Free;
-3
ответ дан 2 December 2019 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: