Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Переполнение стека, что это? [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 то отладь область программы


Наверх

Титульная страница Поиск, карта сайта Написать письмо