Попробуйте использовать команду lookup
и переменную для представления region
, чтобы выбрать значение из map
:
variable region {
description = "aws region"
default = "us-east-1"
}
...
vpc_zone_identifier = ["${lookup(var.subnet_ids, var.region)}"]
См. Документацию для получения дополнительных примеров. [114 ]
Вы почти правы. Ваш цикл должен быть похожим
for i := frmMain.ComponentCount - 1 downto 0 do
begin
if frmMain.Components[i] is TMyClass then
frmMain.Components[i].Free;
end;
Таким образом, вызов к функции "frmMain. ComponentCount" сделан вначале и не снова.
Необходимо также назвать Свободным как выше, не Уничтожают - я не могу помнить почему в данный момент. Интерфейс базового уровня
Запустите наверху и работайте назад.
то есть:
for i := frmMain.ComponentCount - 1 downto 0 do
begin
if frmMain.Components[i] is TMyClass then frmMain.Components[i].Free;
end;
Назовите свободными вместо, Уничтожают. Бесплатные вызовы Уничтожают после проверки действительную ссылку.
Этого не может произойти в Вашем случае, но if frmMain.Components[i] is TMyClass
проверка также возвратит true для классов-потомков TMyClass
. При реальном поиске удаления одного определенного класса Вы, возможно, должны добавить дополнительную проверку ClassName
.
То же решение с циклом с условием продолжения:
i := 0;
while i < frmMain.ComponentCount do
begin
if frmMain.Components[i] is TMyClass then
frmMain.Components[i].Free
else
inc(i);
end;
Если вам нужно проверить и уничтожить именованный известный компонент Используйте
If YourComponent <> Nil Then
YourComponent.Free;