![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переполнение стека, что это? [D6, Access]
O l e g © (2004-09-03 03:16:00)Описание сути проблемы:
Действия происходили под W98.
При запуске программы выдалась ошибка на английском языке «Стек переполнен» и шестнадцатеричные числа.
Программа использует БД.
Может я не закрываю там что-нибудь.
Ошибка выскакивала только два раза, на разных версиях программы, а потом сразу же пропала сама собой. Хотя помнится при компиляции тоже один раз как то выдавал такое же, но сразу же прошло, под виндой ХП, я не придал этому значения.
Так, как избежать этой ошибки. Для это ошибка «темный лес», не знаю даже где искать. А вдруг повторится, моя первая можно сказать программа, которой пользоваться будут и не совсем хорошо работает. Помогите братья по разуму начинающему программисту.
Спасибо.
MU (2004-09-08 16:31:00) [1]вот еще пример со StringGrid
"обработка" OnSelectCell:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
StringGrid1.Col := 0;
end;
... Stack Overflow
т.е. если в обработчике события происходит изменения свойств объекта, которые вновь вызывают это событие
MU (2004-09-08 16:26:00) [2]>>сергей1 (08.09.04 16:22) [6]
я не издеваюсь
при попытке ввода в поле Edit1 возникает событие OnChange, в обработчике которого Edit1.Text опять меняется и, следовательно
возникает событие OnChange, в обработчике которого Edit1.Text опять меняется и, следовательно возникает событие OnChange, в обработчике которого Edit1.Text опять меняется и, следовательно Stack Overflow
сергей1 (2004-09-08 16:22:00) [3]не издевайтесь над человеком
> Edit2.Text := Edit2.Text + '1';
у тебя это вызывает переполнение стека ?
2 oleg
пробуй погонять как следует, если ошибка вылезает на разных осях и разных компах, но не всегда, то значит в твоей проге время от времени наступают какие-то условия, приводящие к ней, потести ее как слудует и откопаешь ошибку
Digitman (2004-09-08 15:52:00) [4]
> на английском языке
гораздо катастрофичней была бы ситуация, если - на папуасском
"на английском" - ценнейшая инф-ция по сабжу !!
> при компиляции тоже один раз как то выдавал такое же
как раз "при компиляции" на английском сия беда и приключается ... а на папуасском - уже в ран-тайм ...
ты думаешь вообще что говоришь ? какая нафих еще "компиляция" ?! ты УЖЕ стартовал процесс !! когда получил это сообщение !!
> сразу же прошло
знач, "пронесло" .. это была явно не диарея
MU (2004-09-08 15:52:00) [5]вот пример (грубый)
procedure TForm1.Edit2Change(Sender: TObject);
begin
Edit2.Text := Edit2.Text + '1';
end;
Vlad (2004-09-08 15:45:00) [6]Без кода трудно что либо понять.
Возможно какая-то процедура входит в рекурсию, или бесконечный цикл.
сергей1 (2004-09-08 15:43:00) [7]сложно искать ошибку, которая то есть то нет. Вот если бы она выскакивала относительно регулярно - то можно было бы отладчиком до причин докапаться. А вообще, если ты примерно знаешь место в твоем коде, где она вылазила - попробуй внимательно его просмотреть, можно и вообще сомнительные места переписать.
sf (2004-09-08 15:31:00) [8]Если числа где то равны 000000?? тогда это глючит Делфи
Выход из положения: если знаешь Debug то отладь область программы