|
#1
|
||||
|
||||
цикл
Вот цикл подсчета суммы в ячейках StringGrid-a:
Код:
var i: integer; summ: array[1..25] of real; begin for i:=1 to 25 do begin summ:=(StrToFloat(SG3.Cells[2,i])+ StrToFloat(SG3.Cells[8,i])+ StrToFloat(SG3.Cells[14,i])+ StrToFloat(SG3.Cells[20,i])/4; SG3.Cells[26,i]:=FloatToStr(summ,ffFixed,1,1); end; end; |
#2
|
|||
|
|||
Код:
var i: integer; summ: array[1..25] of real; begin for i:=1 to 25 do begin If (SG2.Cells[2,i] = '') Or (SG3.Cells[8,i] = '') Or (SG3.Cells[14,i] = '') Or (SG3.Cells[20,i] = '') Then SG3.Cells[26,i]:= '0' Else begin summ:=(StrToFloat(SG3.Cells[2,i])+ StrToFloat(SG3.Cells[8,i])+ StrToFloat(SG3.Cells[14,i])+ StrToFloat(SG3.Cells[20,i])/4; SG3.Cells[26,i]:=FloatToStr(summ,ffFixed,1,1); End; end; end; |
#3
|
||||
|
||||
Спасибо тебе, Imikle!) Я щас попробую сделать)
|
#4
|
||||
|
||||
Код работает). Теперь у меня еще вот какой вопрос: как написать процедуру (или цикл), который бы удалял нули из таблицы? Если можете, то может его можно встроить в код, который я дал в начале страницы темы). А как еще избавииться от того, чтобы не появлялось сообещение типа: " ' ' is not a valid floating point value"?)
|
#5
|
|||
|
|||
1. что значит "удалял"? Менял на пустую строку?
2. Использовать, например, конструкцию Try...Except...End. Под отладчиком все-равно будут возникать, но при работе - нет. |
#6
|
||||
|
||||
Цитата:
|
#7
|
|||
|
|||
1. по всем ячейкам меняем 0 на пустую строку:
Код:
var I, J : Integer; begin For I := 0 To SG3.ColCount Do For J := 0 To SG3.RowCount Do If SG3.Cells[I,J[ = '0' Then SG3.Cells[I,J[ := ''; end; 2. Если не удалось конвертировать хоть одно число, то ставит в ячейку 0: Код:
var i: integer; summ: array[1..25] of real; begin for i:=1 to 25 do begin If (SG3.Cells[2,i] = '') Or (SG3.Cells[8,i] = '') Or (SG3.Cells[14,i] = '') Or (SG3.Cells[20,i] = '') Then SG3.Cells[26,i]:= '0' Else begin Try summ:=(StrToFloat(SG3.Cells[2,i])+ StrToFloat(SG3.Cells[8,i])+ StrToFloat(SG3.Cells[14,i])+ StrToFloat(SG3.Cells[20,i])/4; SG3.Cells[26,i]:=FloatToStr(summ,ffFixed,1,1); Except SG3.Cells[26,i]:= '0'; End; End; end; end; |
#8
|
||||
|
||||
Спасибо, уважаемый коллега!) Я попробую сделать)
|