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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2009, 21:11   #1
Китти
Пользователь
 
Регистрация: 22.12.2009
Сообщений: 19
Радость Stringgrid

Привет всем! Задачка довольно простая, но я не могу понять откуда появляется ошибка... Мне нужно из второго столбца stringgrida1 найти числа от 15 до 19, и вывести строки, в которых есть эти числа во второй стринггрид.

procedure TForm1.Button3Click(Sender: TObject);
var i,k:integer;
begin
k:=0;
for i:=1 to stringgrid1.RowCount-1 do

if strtoint(stringgrid1.cells[1,i])>=15 and
strtoint(stringgrid1.cells[1,i])<19)
then
begin
k:=k+1;
stringgrid2.cells[0,k]:=stringgrid1.Cells[0,i];
stringgrid2.cells[1,k]:=stringgrid1.Cells[1,i];
stringgrid2.cells[2,k]:=stringgrid1.Cells[2,i];
end ;
end;
В итоге, Программа выдает ошибку "...EConvertError with message ''' is not a valid integer value'." Помогите =)))))
Китти вне форума Ответить с цитированием
Старый 22.12.2009, 21:19   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Здесь :
Код:
if strtoint(stringgrid1.cells[1,i])>=15 and strtoint(stringgrid1.cells[1,i])<19)
Нужно добавить проверку на непустую ячейку.
Иначе программа запущенная под компилятором выдаст именно такую ошибку.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 22.12.2009, 21:28   #3
Китти
Пользователь
 
Регистрация: 22.12.2009
Сообщений: 19
По умолчанию

не очень поняла ответ... =) вы не могли пояснить, пожалуйста =))))
Китти вне форума Ответить с цитированием
Старый 22.12.2009, 21:30   #4
Китти
Пользователь
 
Регистрация: 22.12.2009
Сообщений: 19
По умолчанию

ХА, Заработало! Спасибо г-н Котофф! =))))
Китти вне форума Ответить с цитированием
Старый 22.12.2009, 21:37   #5
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

На счет самого кода, можно это сделать так
Код:
procedure TForm1.Button3Click(Sender: TObject);
var i,k:integer;
begin
k:=0;
for i:=1 to stringgrid1.RowCount-1 do

if strtoint(stringgrid1.cells[1,i])>=15 and strtoint(stringgrid1.cells[1,i])<19)
  and StringGrid1.Cells[1, i] <> '' then
begin
  StringGrid2.Rows[k].SetText(StringGrid1.Rows[i].GetText);
  Inc(k);
end ;
end;
psycho-coder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid ARXangel Общие вопросы Delphi 5 16.04.2009 09:16
StringGrid Chudo4258 Помощь студентам 1 17.03.2009 09:24
StringGrid StartMis Общие вопросы Delphi 5 21.11.2008 15:11
StringGrid SergGhost Помощь студентам 2 29.10.2008 08:48
StringGrid Dimon88 Компоненты Delphi 15 14.02.2008 11:44