Главная страница
    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.038 c
6-1093108291
Asd
2004-08-21 21:11
2004.10.31
Асинхронная ошибка как с ней бороться


14-1097253935
Leaner
2004-10-08 20:45
2004.10.31
Количество секторов в кластере


6-1093279257
Johnny Raw
2004-08-23 20:40
2004.10.31
вопрос по поводу IdHTTP1.Response.LastModified


1-1097828947
STM
2004-10-15 12:29
2004.10.31
Application.Minimize


4-1096223457
iZEN
2004-09-26 22:30
2004.10.31
О времени реакции ядра системы Windows.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский