![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
У меня получилось, что суммируется только один столбец, создает еще строку, в ней пишет результат, а очень хочу, чтобы он отсуммировал каждый столбец и под каждым из столбцов выдавл его сумму.
Код:
procedure TForm1.Button1Click(Sender: TObject); var sum: integer; a:Longint; begin sum:=0; for a:=0 to StringGrid1.RowCount-1 do begin sum:=sum+StrToInt(StringGrid1.Cells[0,a]) end; StringGrid1.rowCount:=StringGrid1.rowCount+1; StringGrid1.Cells[0,a]:=FloatToStr(sum); Form1.StringGrid1.Height:= Form1.StringGrid1.Height+ 21; end; |
|
#2
|
|||
|
|||
|
Соответственно, тебе надо не одну переменную для сумм, а несколько.
|
|
#3
|
||||
|
||||
|
Делаете так:
1. Увеличиваете количество строк на 1. Последняя строка будет содержать итоги всех столбцов. 2. Делаете два цикла. Первый обходит столбцы, второй строки. Во втором цикле накапливаете сумму в последней ячейке данного столбца. Никаких промежуточных переменных не надо. А вот собственно реализация: Код:
StringGrid1.RowCount := StringGrid1.RowCount + 1;
for Col := 0 to StringGrid1.ColCount-1
do begin
StringGrid1.Cells[Col,StringGrid1.RowCount-1] := '0';
for Row := 0 to StringGrid1.RowCount-2
do StringGrid1.Cells[Col,StringGrid1.RowCount-1] := Format('%6.2f',[StrToFloat(StringGrid1.Cells[Col,StringGrid1.RowCount-1]) + StrToFloat(StringGrid1.Cells[Col,Row])]);
end;Последний раз редактировалось Страдалецъ, 15.05.2009 в 10:11. |
|
#4
|
|||
|
|||
|
Всё очень чудно работает
! Спаасиибоо ВАМ, СТРАДАЛЕЦЪ!!! |