Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Динамический массив компонентов

7.4K
11 мая 2004 года
MIA
1 / / 11.05.2004
Проблема такая: при создании одного компонента всё работает:

function TForm1.TotalPopulation: double;
var
Tbl: TTable;
begin
Result := 0.0;
Tbl := TTable.Create(nil);
try
Tbl.DatabaseName := 'DBDEMOS';
Tbl.TableName := 'COUNTRY';
Tbl.Open;
//что-то делаем
end;
Tbl.Close;
finally
Tbl.Free;
end;
end;

При попытке повторить это с массивом получается

function TForm1.TotalPopulation: double;
var
Tbl:array of TTable;
i:integer;
begin
Result := 0.0;
SetLength(Tbl,5)
try
For i:=1 to 5 do
Tbl:= TTable.Create(nil);
Tbl.DatabaseName := 'DBDEMOS';
Tbl.TableName := 'COUNTRY';
Tbl.Open;
//делам то же самое
end;
For i:=1 to 5 do
Tbl.Close;
finally
For i:=1 to 5 do
Tbl.Free;
end;
end;

Выползает ошибочка
exeption class EInvalidPointer
message 'Invalid pointer operation'

Ошибка при удалении элементов массива
В чем проблема и можно ли сразу снести весь массив полностью?
P.S. (массив должен создаваться несколько раз за время выполнения программы)
10
11 мая 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by MIA

var
Tbl:array of TTable;


Данное объявление задает массив динамической длины, элементы которого индексируются от 0 до значения, переданного в SetLength, минус 1.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог