Динамический массив компонентов
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. (массив должен создаваться несколько раз за время выполнения программы)
Цитата:
Originally posted by MIA
var
Tbl:array of TTable;
var
Tbl:array of TTable;
Данное объявление задает массив динамической длины, элементы которого индексируются от 0 до значения, переданного в SetLength, минус 1.