Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.071 c