С любой ошибкой можно (и нужно) бороться
Переполнение стека обычно возникает, если у тебя внутри функции/процедуры описано достаточно много локальных переменных (большой массив, например), а размер стека ведь по умолчанию = 16К... Вот и не хватает его чтобы разместить все необходимые данные... Выход - директива компилятора {$M} (смотри в FAQ-е про нее, я добавлял)...
Вторая причина - глубокая (чаще всего - неправильная) рекурсия. Тут тебе ничего не поможет, кроме как найти ошибку и переписать рекурсию правильно...
Ну, и можно вообще отключить предупреждение об ошибке (хотя это плохо: предупреждения не будет, но программа правильно работать не станет...) Выбирай, что будем делать. Если нужно более конкретно - код в студию (и перенесем тему в раздел "Задачи")