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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2010, 00:20   #1
Blue Heron
Новичок
Джуниор
 
Регистрация: 17.03.2010
Сообщений: 6
По умолчанию Ошибка List index of bounds(1)


Доброй ночи! Срочно прошу помощи: при попытке выполнить процедуру procedure TForm1.Button2Click(Sender: TObject);
(т.е запустить кнопку построения диаграммы компилятор выдает сообщение об ошибке:
Project Project1.exe raised exeption class EStringListError with message 'List index of bounds(1)'.
Process stopped...
и выделяет при этом строку t:=StrToFloat(lb.Items[j]);
Все остальное работает.
вот текст исходной программы:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Chart, ExtCtrls, TeeProcs, TeEngine, Series;

type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
e1: TEdit;
e2: TEdit;
e3: TEdit;
e5: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label9: TLabel;
Label10: TLabel;
Button2: TButton;
lb: TListBox;
Chart1: TChart;
Series1: TPieSeries;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:byte;
sk,sn,k,p:real;
begin
sn:=StrToFloat(e1.Text);
sk:=sn;
p:=StrToFloat(e2.Text);
k:=StrToFloat(e3.Text);
i:=0;
while sk/sn<k do
begin
sk:=sk*(1+p/100);
lb.Items[i]:=FloatToStr(trunc(sk));
i:=i+1;
end;
e5.Text:=IntToStr(i);
end;
procedure TForm1.Button2Click(Sender: TObject);
var j,k:integer; t:real;
begin
k:=StrToInt(e5.Text);
with Series1 do
begin clear;
for j:=0 to k do
begin
t:=StrToFloat(lb.Items[j]);
Add(t,' руб.',clRed);
end;
end;
end;
end.
Blue Heron вне форума Ответить с цитированием
Старый 17.03.2010, 00:29   #2
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

Можно запихнуть код в
Код:
Try
...
Except
...
End;

P.S. Код надо в тег code запихивать на форуме...
Если помог - Весы слева

Последний раз редактировалось KREGI; 17.03.2010 в 00:35.
KREGI вне форума Ответить с цитированием
Старый 17.03.2010, 00:33   #3
Blue Heron
Новичок
Джуниор
 
Регистрация: 17.03.2010
Сообщений: 6
По умолчанию

не помогло: то же самое!
Blue Heron вне форума Ответить с цитированием
Старый 17.03.2010, 00:34   #4
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
List index of bounds
это говорит о том что у вас в строчке
Код:
t:=StrToFloat(lb.Items[j]);
индекс j зашел за предел размера списка
следите за индексами
NiCola999 вне форума Ответить с цитированием
Старый 17.03.2010, 00:37   #5
Blue Heron
Новичок
Джуниор
 
Регистрация: 17.03.2010
Сообщений: 6
По умолчанию

и какого его тогда размера делать, если он отсчитывается до k ???
Blue Heron вне форума Ответить с цитированием
Старый 17.03.2010, 00:38   #6
Blue Heron
Новичок
Джуниор
 
Регистрация: 17.03.2010
Сообщений: 6
По умолчанию

Всё: всем спасибо! Проблема была решена исправлением счётчика k на k-1
Blue Heron вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка:List index out of bounds tanek Помощь студентам 7 26.12.2009 20:38
List index out of bounds (91) KoBRaAndrey Общие вопросы Delphi 6 25.12.2009 15:29
Табулирование функции. Ошибка 'List index out of bounds(0)' Мэр Общие вопросы Delphi 2 03.06.2009 09:11
Ошибка List index out of bounds(0) при использовании запроса AdoQuery ArtInt БД в Delphi 14 15.04.2009 18:35