Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Вниз"is not a valid integer value" Найти похожие ветки
← →
Erick © (2005-05-24 23:11) [0]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" работает нормально.
Заранее благодарен.
← →
raidan © (2005-05-24 23:23) [1]у тебя числа в stringgrig все целые?
← →
Yanis © (2005-05-24 23:25) [2]
> В чём ошибка?
В блоке 3.
← →
Erick © (2005-05-24 23:39) [3]у тебя числа в stringgrig все целые?
Целые.
В блоке 3.
Почему? Он аналогичен первому и второму.
← →
raidan © (2005-05-24 23:43) [4]>Erick © (24.05.05 23:39) [3]
Нет, он не аналогичен.
В третьем блоке сначала j+1, а потом i+1.
← →
Yanis © (2005-05-24 23:44) [5]Содержимое ячеек меняется.
← →
Yanis © (2005-05-24 23:45) [6]т.е. не меняется.
← →
Virgo_Style © (2005-05-24 23:45) [7]Erick © (24.05.05 23:11)
Сообщение должно выглядить так:... "значение" is not a valid integer value...
Чему равно "значение"? Я подозреваю, что пустой строке.
← →
Erick © (2005-05-25 00:17) [8]Ошибся немножко, когда переделывал.
Вот код, проблема осталась.
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;
← →
evvcom © (2005-05-25 09:04) [9]Кроме сообщения об ошибке Delphi указывает еще и строку, в которой эта ошибка произошла. Еще в IDE есть такие понятия как точки останова и пошаговая отладка, а еще Watches (Ctrl+F5). Попробуй с ними подружиться.
← →
alex_*** (2005-05-25 09:58) [10]еще неплохо бы научиться форматировать текст, для лучшего переваривания
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.05 c