|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
stringgrid-суммирование столбцов
У меня получилось, что суммируется только один столбец, создает еще строку, в ней пишет результат, а очень хочу, чтобы он отсуммировал каждый столбец и под каждым из столбцов выдавл его сумму.
Код:
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
|
|||
|
|||
Всё очень чудно работает ! Спаасиибоо ВАМ, СТРАДАЛЕЦЪ!!!
|