Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизОшибка при закрытиии динамического массива Найти похожие ветки
← →
sergg (2004-10-13 16:27) [0]При закрытии динамического массива как при выходе из программы, так и при пирсвоении его имени nil выдается
Access violation at adress 00401D4E in module "employees.exe". Write of adress 00000063.
В чем тут может быть дело?
← →
Суслик © (2004-10-13 16:29) [1]
> В чем тут может быть дело?
в том, что ты:
1) у тебя массив записей, в которых есть длинные строки, с которыми ты работал через move и writebuff или прочими ф-ями с нетипизированными параметрами.
2) ты работал указанными выше функциями с самим массивом.
приводи код, как ты используешь массив
← →
sergg (2004-10-13 16:36) [2]try
with DataModule2.ADOQueryTreeView do
begin
//Âûáîðêà ñîòðóäíèêîâ
Close;
SQL.Clear;
SQL.Add("SELECT Employees.Number, Employees.SurName +" "+ Employees.Name +" "+ Employees.Patronymic, ");
SQL.Add("Employees.SubDivision FROM Employees");
SQL.Add("");
SQL.Add("");
Open;
//Îïðåäåëåíèå äëèíà ìàññèâà TVSubDivisionsArray
SetLength(TVPostNameEmployeeArray, RecordCount+1);
if RecNo >0 then
begin
//Çàíåñåíèå ïîä÷èíåííûõ âåòâåé ñîòðóäíèêîâ
First;
for i:=1 to RecordCount do
begin
TVPostNameEmployeeArray[Fields.Fields[0].AsInteger].Number:= Fields.Fields[0].AsInteger;
:(( TVPostNameEmployeeArray[Fields.Fields[0].AsInteger].Node:= Form7.TreeView1.Items.AddChild(TVSubDivisionsArray[Fields.Fields[2].AsInteger].Node, Fields.Fields[1].AsString + Fields.Fields[0].AsString);
Next;
end;
end;
end;
Ошибка пропадает при комментировании строки помеченной :((
← →
sergg (2004-10-13 16:38) [3]Массив состоит из структур такого типа:
TreeViewRecord = record
Node: TTreeNode;
Number: integer;
Field: string;
end;
← →
Семен Сорокин © (2004-10-13 16:56) [4]собака здесь скорее всего:
TVPostNameEmployeeArray[Fields.Fields[0].AsInteger].Numbe
Range Check Error - галочкеу в опциях проекта постаь
← →
Суслик © (2004-10-13 16:56) [5]может быт что угодно.
один из вариантов:
1) у тебя в project options отключен флаг range check error
2) при обращении выходишь за границу массива. Где гарантия, что Fields.Fields[2].AsInteger имеет значение <= high(твоего массива)?
← →
sergg (2004-10-13 17:01) [6]Блин, я ведь длину числа массива определяю не так как надо!!!!! :(((
← →
sergg (2004-10-13 17:01) [7]Блин, я ведь длину числа массива определяю не так как надо!!!!! :(((
← →
sergg (2004-10-13 17:24) [8]Спасибо
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c