Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.062 c
6-1093242984
MiniTex
2004-08-23 10:36
2004.10.31
Слежение за поротом или его закрытие


1-1097652492
cvg
2004-10-13 11:28
2004.10.31
Как сделать ширину окна проги равной ширине экрана?


14-1097222400
inic
2004-10-08 12:00
2004.10.31
Кощунственные вещи в жизни происходят :(


3-1096970833
GanibalLector
2004-10-05 14:07
2004.10.31
select


3-1096624461
stud
2004-10-01 13:54
2004.10.31
использование параметра в хранимой процедуре





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский