Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 02.10.2009
Сообщений: 159
1

Проверка на наличие определенного числа в таблице

26.12.2012, 23:55. Показов 1554. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
у меня есть программа которая считает сумму введенных чисел в таблице по строкам и столбцам.
надо сделать так, чтобы сумма считалась только когда в нижней правой ячейке введено число 11.

написал так
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
  var a:Integer;
begin
a:=StrToInt(StringGrid1.cells[2,2]);
if a=11 then exit;
Calculate 
end;
запускается но при попытке ввода сразу останавливается и выдает ошибку даже не в коде Unit1 а открывается код Project1 и там в конце высвечивается ошибка. подскажите как исправить это. может проверку на число 11 в другом месте сделать?
Миниатюры
Проверка на наличие определенного числа в таблице  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2012, 23:55
Ответы с готовыми решениями:

STringrid проверка ячеек на наличие числа
STringrid проверка ячеек на наличие числа есть таблица 7 строк от 0 до 6 пользователь может...

Проверить наличие в Edit определенного символа
Добрый день. У меня вопрос, есть ли возможность сделать условия таким образом, если в тексте...

Проверить область рисунка на наличие определенного цвета
Приветствую. Хочу по таймеру (раз в минуту) проверять участок на экране на предмет изменения и...

Проверка массива на наличие определенного символа
Есть массив элементы которого слова. В ходе выполнения массив перебирается по порядку, нужно чтобы...

7
Модератор
3491 / 2614 / 741
Регистрация: 19.09.2012
Сообщений: 7,976
27.12.2012, 12:42 2
Потому что когда происходит событие SetEditText ячейка еще пуста, а ты пытаешься ее в число преобразовать.
И нижняя правая будет StringGrid1.cells[3,3] (судя по скрину).
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32952 / 21271 / 8167
Регистрация: 22.10.2011
Сообщений: 36,541
Записей в блоге: 8
27.12.2012, 12:46 3
МаргаритаC, давай начнем с того, что нижняя правая ячейка (из того, что видно на твоём скриншоте) имеет координаты Cells[3, 3], а не [2, 2], поэтому вычисление в любом случае будет неправильным, даже если ты, воспользовавшись замечанием gorfil-а, заменишь StrToInt на StrToIntDef, чтобы не вылетало ошибки при вводе "не числа".
0
1 / 1 / 0
Регистрация: 02.10.2009
Сообщений: 159
27.12.2012, 13:30  [ТС] 4
Цитата Сообщение от gorfil Посмотреть сообщение
Потому что когда происходит событие SetEditText ячейка еще пуста, а ты пытаешься ее в число преобразовать.
И нижняя правая будет StringGrid1.cells[3,3] (судя по скрину).
странно что я 2 2 написала..перепутала видимо.
а что делать с первым замечанием, то есть надо в другую функцию написать эту проверку да? но сама проверка то правильно написана?
0
Модератор
3491 / 2614 / 741
Регистрация: 19.09.2012
Сообщений: 7,976
27.12.2012, 13:41 5
Цитата Сообщение от МаргаритаC Посмотреть сообщение
а что делать с первым замечанием, то есть надо в другую функцию написать эту проверку да? но сама проверка то правильно написана?
Цитата Сообщение от UI Посмотреть сообщение
...заменишь StrToInt на StrToIntDef, чтобы не вылетало ошибки при вводе "не числа".
Delphi
1
a:=StrToIntDef(StringGrid1.cells[3,3], 0);
1
1 / 1 / 0
Регистрация: 02.10.2009
Сообщений: 159
27.12.2012, 14:00  [ТС] 6
да, теперь не вылетает, но работает вобще непонятно как. надо с кодом разбираться наверное.
вобщем когда вводишь числа он все также считает сумму, когда начинаешь вводить любое число кроме 11 в той самой ячейке он все также считает, но когда вводишь 11 наоборот перестает считать

если время будет у кого-нибудь посмотрите программу пожалуйста)
Вложения
Тип файла: rar сумма.rar (187.8 Кб, 3 просмотров)
0
Модератор
3491 / 2614 / 741
Регистрация: 19.09.2012
Сообщений: 7,976
27.12.2012, 14:05 7
Delphi
1
2
3
4
5
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
begin
  if StringGrid1.cells[3,3] = '11' then Calculate;
end;
1
1 / 1 / 0
Регистрация: 02.10.2009
Сообщений: 159
27.12.2012, 14:14  [ТС] 8
ура) все заработало!) спасибо большое!)))
0
27.12.2012, 14:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2012, 14:14
Помогаю со студенческими работами здесь

Проверка на наличие определенного символа в строке
Приветствую друзья, подскажите. Как можно проверить наличие определенного символа? Например, нужно...

StringGrid - проверка ячеек на наличие определенного символа
помогите , не могу понять как сделать одну вещь. надо в стринггриде проверить все рядки и столбцы,...

Проверка значений в столбце на наличие определенного текста (3 варианта)
Добрый день! vba изучаю недавно, автоматизирую сложный процесс и встал вопрос по одной части кода,...

Проверка на наличие города в таблице
Подскажите, как реализовать такое, чтоб у меня было поле при регистрации - город. И когда начинаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru