Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2008, 20:45   #1
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию Stack Overflow???

Здрасьте всем!!!
Помогите пжлста разобраться!
Вот процедурка, вывода по условию в лист данных, ни как не могу понять, в чем проблема. Пишет что стек переполнен и все тут...
Вот сам код:
Код:
Procedure SortView(Cards: TCards; Index: Integer);
var i: integer;
begin
  if Index<>0 then begin
    for i:=1 to RCount do begin
      if Cards[i].Group=Index then begin
        With MyForm.CardList.items.add do begin caption:=inttostr(Cards[i].Article);
          with subitems do add(Cards[i].Disc_Name);
          with subitems do add(floattostr(Cards[i].Price));
        end;
      end;
    end;
  end else begin
    for i:=1 to RCount do begin
      With MyForm.CardList.items.add do begin caption:=inttostr(Cards[i].Article);
        with subitems do add(Cards[i].Disc_Name);
        with subitems do add(floattostr(Cards[i].Price));
      end;
    end;
  end;
end;
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 31.03.2008, 21:49   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Напиши то-же самое без использования With.

var P:????
P := MyForm.CardList.items.add;
P.subItems ...

Это не намного длиннее, но гораздо понятнее.

Если ошибка останется, приведи хотя-бы описание типов CardList и TCards. Да, и проверь диапазон i:=1 to RCount
alexBlack вне форума Ответить с цитированием
Старый 31.03.2008, 23:58   #3
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

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

p.s. Учись делать отладку, тут работы на две минуты, если есть весь код, тем более тебе вникать не надо в отличие от нас.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 01.04.2008, 06:12   #4
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

Нет alexBlack не помогло... при выводе сообщения об ошибке ставит курсор не в тело процедуры, на определенную строку, а на begin???
Код:
type
  TCards = array [1..100000] of Record
                                  Article   : Integer;
                                  Disc_Name : String;
                                  Price     : Real;
                                  Group     : integer;
                                end;

var Cards: Tcards;
mutabor, это не floattostr - вообще у меня с данной функцией проблем никогда небыло...
Хорошо не там, где нас нет, а там, где нас еще небыло!!!

Последний раз редактировалось Рустам; 01.04.2008 в 06:29.
Рустам вне форума Ответить с цитированием
Старый 01.04.2008, 06:32   #5
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

ладно, ребята, спасибо за инфу....
пойдем другим путем...
всем спасибо, всем респект за помощь!!!
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 01.04.2008, 08:58   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А на какой конкретно строке вылазит ошибка если трасить пошагам?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.04.2008, 15:47   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Недавно совсем была у меня такая ошибка, тоже не мог сообразить сразу, но не помню в чем причина была.
Ошибка эта - переполнение стека, бывает при неправильных рекурсиях. Ищи причину в вызове функции, может тип не подходит для этого.
Также попробуй добавить var
Procedure SortView(var Cards: TCards; Index: Integer);
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 01.04.2008, 17:24   #8
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

Спасибо ОГРОМНОЕ, уже не нужно...
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При переключении между чекбоксами - ошибка Stack overflow. Как исправить эту ошибку? SkAndrew Общие вопросы Delphi 5 26.08.2008 21:32
Stack owerflow - глюки с TThread IOrist Общие вопросы Delphi 4 11.11.2007 09:13