Вниз
Скачать: CL | DM;

Invalid pointer operation   Найти похожие ветки 

 
Rise ©   (2003-05-29 12:57) [0]

Мастера помагите пожалйста я уже незнаю что мне делать
Я привел код который выполняеться но при закрыти( внимание только при закрытии самого приложения!) приложения выдает такое
"Debugger Exception Notification
Проект Project.exe вызвал исключение класса EInvalidPointer с сообщением "Invalid pointer operation""
Если данную процедуру неоднократно выполнять(раз так 30) то
при закрытии приложение(внимание! только призакрытии) выдает
"Application Error
Exception EAccessViolation in module Project.exe at 000024A0.
Access violation at address 004024A0 in module "Project.exe". Read of address 0195CF98."

Я пробавал комментировать строки пришел к следющему, если закоментировать строку
tmpdate:=tmpdate+1;//!!!
то код работает. Он так же не выдает ошибку при закрытии приложения если
я закоментирую строку
StringGrid1.cells[0,RecCount]:="TEST";

Помагите пожалуста я уже выбился из сил найти баг...
--------------------------------------------------------------
Var j,i:Byte;
tmpDate:TDateTime;
str:string;
Acol,Arow,Account,RecCount:Word;
BaseCal:array of string;
BaseNames:array of string;
BaseColors:array of TCOlor;
begin
RecCount:=1;
StringGrid1.CleanupInstance;//очищаю таблицу
col:=Tabel.DBGrid1.DataSource.DataSet.RecordCount;
StringGrid1.RowCount:=col*5+6;//

for i:=1 to 7 do Begin
SetLength(BufTable[i],(col+1)*5+1);
for j:=1 to (col+1)*5+1 do BufTable[i,j]:=RGB(255,255,255);
end;

SetLength(BaseCal,col);
SetLength(Basenames,col);
SetLength(BaseColors,col);i:=0;
//------------Данные из базы в массивы--------------------------
Tabel.DBGrid1.DataSource.DataSet.First;
While not Tabel.DBGrid1.DataSource.DataSet.Eof DO
Begin
BaseCal[i]:=Tabel.DBGrid1.DataSource.DataSet.Fields[9].Value
BaseColors[i]:=Tabel.DBGrid1.DataSource.DataSet.Fields[8].Value;
str:=Tabel.DBGrid1.DataSource.DataSet.Fields[1].Value;
Delete(str,Pos(" ",str),Length(str));
BaseNames[i]:=str;
DBGrid1.DataSource.DataSet.Next;
Inc(i);
end;
//-------------------------------------------------
i:=1;RecCount:=1;j:=0;
tmpDate:=EncodeDate(2002+setings.ComboBox2.ItemIndex,1+setings.ComboBox1.ItemIndex,1);
While i<=ColDayInMonth[setings.ComboBox1.ItemIndex+1] do BEGIN

Repeat
StringGrid1.cells[0,RecCount]:="TEST";

RecCount:=(col+1)*j+1;
tmpdate:=tmpdate+1;//если её закоментировать то код работает

Inc(i);
Until (DayOfTheWeek(tmpDate)=1)or(i>ColDayInMonth[setings.ComboBox1.ItemIndex+1]);

Inc(j);
RecCount:=(col+1)*j+1;

END;

BaseCal:=nil;
Basenames:=nil;
BaseColors:=nil;

newdata:=true;

end;


 
Serginio   (2003-05-29 13:44) [1]

Во первых покажи код уничтожения формы (или что там у тебя уничтожается) "Debugger Exception Notification" не начто не наталкивает. Вчера ты не показав полного кода уничтожения приложения заставил людей чесать головы.


 
Anatoly Podgoretsky ©   (2003-05-29 13:58) [2]

А сегодня привел кусок побольше, что бы совсем голову сломали.
Ответ воотще то простой, неверные указатели в программе, искать тяжело, проще писать правильно, тогда искать не потребуется.


 
victorbur   (2003-05-29 14:23) [3]

Согласен с Anatoly Podgoretsky



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
14-26780
Satirus
2003-05-23 16:41
2003.06.09
Апроксимация и интерполяция


14-26667
Шейкер
2003-05-23 13:52
2003.06.09
Шейкер-соритровка


14-26775
Александр из Минска
2003-05-22 22:19
2003.06.09
Выезжающая панель


14-26785
Juster~
2003-05-23 12:44
2003.06.09
НОВАЯ ИНФОРМАТИКА


14-26753
bushmen
2003-05-22 10:31
2003.06.09
Delphi i cache




   Наверх