Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» C++ Builder - Таблица StringGrid

Автор: Dark_Delphin
Дата сообщения: 13.03.2013 18:15
Всем привет.

Токо не давно начал учить C++ Builder.

Надо сделать таблицу StringGrid в которую пользователь сможет вводить числа и при нажатии на Button вычислять эти числа .
Тоесть прибавлять ячейки.
Таблицу я уже сделал и вводить данные могу в неё...
Как быть дальше?

Автор: miwa
Дата сообщения: 13.03.2013 21:28
Dark_Delphin
Лично я не понял смысла фразы «при нажатии на Button вычислять эти числа . Тоесть прибавлять ячейки». Надо вычислять числа, или все же прибавлять ячейки?

Но все же, как вариант - перевернуть страницу учебника и прочитать, что там далее пишут. Серьезно.
Автор: Dark_Delphin
Дата сообщения: 13.03.2013 22:44
miwa
Числа прибавлять, те что в ячейках введет пользователь.
Если бы нашел решил бы... Даже не пойму с чего начинать.
Автор: miwa
Дата сообщения: 13.03.2013 22:56
Тоесть, в четвертой колонке надо выводить сумму значений из первых трех?

Если "в лоб", то примерно так:


Код:
StringGrid1->Cells[3][0] = IntToStr(
StrToInt(StringGrid1->Cells[0][0]) +
StrToInt(StringGrid1->Cells[1][0]) +
StrToInt(StringGrid1->Cells[2][0])
);
Автор: Dark_Delphin
Дата сообщения: 13.03.2013 23:08
miwa
Спасибо большое. Почитаю учебники электронные.

Вот еще , не подскажите, что за ошибка?

Автор: miwa
Дата сообщения: 13.03.2013 23:51
Dark_Delphin
Как раз одна из тех, о которых я упоминал - "пустое значение не является целым числом". Тоесть в одной из упомянутых ячеек не внесены данные.

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


Код:
if (TryStrToFloat(StringGrid1->Cells[0][0], value1)
&& TryStrToFloat(StringGrid1->Cells[1][0], value2)
&& TryStrToFloat(StringGrid1->Cells[2][0], value3)
)
{StringGrid1->Cells[3][0] = FloatToStr(Value1 + Value2 + Value3);}
else
{StringGrid1->Cells[3][0] = 'Введены не все значения';}
Автор: Dark_Delphin
Дата сообщения: 14.03.2013 00:06
miwa
Ошибка бъет сразу как я нажимаю на поле, чтобы ввести данные.
Автор: miwa
Дата сообщения: 14.03.2013 00:13
Dark_Delphin
Хм... А в какое событие ты код вычисления результата внес?
Автор: Dark_Delphin
Дата сообщения: 14.03.2013 00:27
miwa
два раза кликнул на компонент грид и вставил код в нужное место.
Автор: miwa
Дата сообщения: 14.03.2013 00:36
Dark_Delphin
Отлично. И как при этом называлась процедура, которую создал билдер? Случаем не StringGrid1Change?
Автор: Dark_Delphin
Дата сообщения: 14.03.2013 00:42
miwa
Даже не знаю. Никак не могу привыкнуть пока что к билдеру этому.
Автор: miwa
Дата сообщения: 14.03.2013 01:05
Dark_Delphin
Называется она StringGrid1Click. И выполняется каждый раз, когда ты кликаешь по гриду. Например, чтобы внести данные. А надо, чтобы выполнялась, когда ты кликаешь по кнопке, а не по гриду. Соответственно, надо кликнуть дважды по кнопке и вносить код в процедуру, которую билдер обозвет как Button1Click. А ту, предыдущую, лучше пока очистить.

Хотя в целом - повторюсь - не с того конца ты начал изучать билдер. Рабочее (в смысле не падающее и показывающее хоть какой-то результат) оконное приложение ты к утру может и получишь, но вот понимание процесса наступит гораздо позже, чем если бы ты начал с какого-то учебника.
Автор: Dark_Delphin
Дата сообщения: 14.03.2013 15:23
miwa
ага... я понял. Спасибо большое за помощь.

Добавлено:
miwa
Все сделал так как Вы написали, но теперь та же ошибка когда кликаю по кнопке (данные ввел в ячейки)

Страницы: 1

Предыдущая тема: 1с 7.7 ТИС + Штрих light + скидка в чеке ккм


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.