Главная страница
    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.064 c
6-1092825898
ctranik
2004-08-18 14:44
2004.10.31
как скачать Web-страницу которая лежит в другой "Папке"


1-1097870045
Мирон
2004-10-15 23:54
2004.10.31
TXPManifest уличен во вредительстве


1-1097571033
MakNik
2004-10-12 12:50
2004.10.31
QReport


1-1098084343
NewDelpher
2004-10-18 11:25
2004.10.31
Точки останова


4-1095928921
Aleksandr.
2004-09-23 12:42
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский