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

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

"is not a valid integer value" [D6, WinXP]


Erick ©   (2005-05-24 23:11:00) 

procedure TForm1.Button2Click(Sender: TObject);
var
i,j,number,number1,number2:integer;
d,max,min1,min2,min:extended;
kernel_mas:array [1..100] of integer;
x,y,rd,color:integer;
begin
color:=1;

for j:=1 to vcount do begin
x:=StrToInt(StringGrid1.Cells[1,j]);
y:=StrToInt(StringGrid1.Cells[2,j]);
Image1.Canvas.Ellipse(x-5,y-5,x+5,y+5);
Image1.Canvas.TextOut(x+5,y+5,IntToStr(j));
end;
Randomize;
j:=random(vcount);
x:=StrToInt(StringGrid1.Cells[1,j]);
y:=StrToInt(StringGrid1.Cells[2,j]);
Image1.Canvas.Brush.Color:=color;
Image1.Canvas.Ellipse(x-5,y-5,x+5,y+5);

max:=0;
//Memo1.Lines.Add('N1=X(1)');
//вычисляем расстояния от первого ядра до остальных объектов. N2-оъект с мах
//расстоянием до первого ядра.
for i:=2 to vcount do
begin
d:=evclid(j,i);
if d>max then begin
max:=d;
number:=i;
end;
end;
//Блок 3
x:=StrToInt(StringGrid1.Cells[1,j+1]);
y:=StrToInt(StringGrid1.Cells[2,i+1]);
Image1.Canvas.Brush.Color:=2;
Image1.Canvas.Ellipse(x-5,y-5,x+5,y+5);

end;

При нажатии на эту кнопку, вылазит диалоговое окно, на котором написано "is not a valid integer value". В чём ошибка? Без того, что помечено как "Блок 3" работает нормально.
Заранее благодарен.


alex_***   (2005-05-25 09:58:00) [1]

еще неплохо бы научиться форматировать текст, для лучшего переваривания


evvcom   (2005-05-25 09:04:00) [2]

Кроме сообщения об ошибке Delphi указывает еще и строку, в которой эта ошибка произошла. Еще в IDE есть такие понятия как точки останова и пошаговая отладка, а еще Watches (Ctrl+F5). Попробуй с ними подружиться.


Erick   (2005-05-25 00:17:00) [3]

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

procedure TForm1.Button2Click(Sender: TObject);
var
i,j,number,number1,number2:integer;
d,max,min1,min2,min:extended;
kernel_mas:array [1..100] of integer;
x,y,rd,color:integer;
begin
color:=1;
{x:=StrToInt(StringGrid1.Cells[1,1]);
y:=StrToInt(StringGrid1.Cells[2,1]); }
for j:=1 to vcount do begin
x:=StrToInt(StringGrid1.Cells[1,j]);
y:=StrToInt(StringGrid1.Cells[2,j]);
Image1.Canvas.Ellipse(x-5,y-5,x+5,y+5);
Image1.Canvas.TextOut(x+5,y+5,IntToStr(j));
end;
Randomize;
j:=random(vcount);
x:=StrToInt(StringGrid1.Cells[1,j]);
y:=StrToInt(StringGrid1.Cells[2,j]);
Image1.Canvas.Brush.Color:=color;
Image1.Canvas.Ellipse(x-5,y-5,x+5,y+5);

max:=0;
//Memo1.Lines.Add('N1=X(1)');
//вычисляем расстояния от первого ядра до остальных объектов. N2-оъект с мах
//расстоянием до первого ядра.
for i:=2 to vcount do
begin
d:=evclid(j,i);
if d>max then begin
max:=d;
number:=i;
end;
end;
x:=StrToInt(StringGrid1.Cells[1,i]);
y:=StrToInt(StringGrid1.Cells[2,i]);
Image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.Ellipse(x-5,y-5,x+5,y+5);

end;


Функция evclid:

function evclid(i:integer;j:integer):extended;
var
k,rez,_sqr:integer;
begin
rez:=0;
for k:=1 to kcount do
begin
_sqr:=sqr(StrToInt(Form1.StringGrid1.Cells[k,i])-StrToInt(Form1.StringGrid1.Cells[k,j]));
rez:=rez+_sqr;
end;


Yanis   (2005-05-24 23:45:00) [4]

т.е. не меняется.


Virgo_Style   (2005-05-24 23:45:00) [5]

Erick ©   (24.05.05 23:11)

Сообщение должно выглядить так:
... 'значение' is not a valid integer value...

Чему равно 'значение'? Я подозреваю, что пустой строке.


Yanis   (2005-05-24 23:44:00) [6]

Содержимое ячеек меняется.


raidan   (2005-05-24 23:43:00) [7]

>Erick ©   (24.05.05 23:39) [3]
Нет, он не аналогичен.
В третьем блоке сначала j+1, а потом i+1.


Erick   (2005-05-24 23:39:00) [8]

у тебя числа в stringgrig все целые?
Целые.

В блоке 3.
Почему? Он аналогичен первому и второму.


Yanis   (2005-05-24 23:25:00) [9]


> В чём ошибка?

В блоке 3.


raidan   (2005-05-24 23:23:00) [10]

у тебя числа в stringgrig все целые?


Наверх

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