表の中の計算結果を表示するには?


  2004-07-30 06:43:05  No: 10152

CSVGRIDを使っています。
多分StringGridでも一緒なのかと思うのですが、5×5の表の各列の値の合計値をそれぞれ1つずつグリッドに出したいと考えている(1列目の合計をGrid1に、2列目の合計をGrid2にという感じです)のですが、最近Delphiを始めたばかりでよくわからないので教えていただけると幸いです。よろしくお願いします。

できれば表が完全に埋まっていない場合であっても計算結果がきちんと表示されるとうれしいです。いろいろ話してすみません。。


jok  2004-07-30 11:05:03  No: 10153

CSVGRID は知りませんので TStringGrid の場合について回答します。

各列の合計を求める場合のどの部分がわかりませんか?
・数値の文字列を数値に変換する → Val() などが使える。文字列がないときも判断できる
・数値に変換できたら足し算をして和を求める
・それを表示する

例えば、5x5の表は 行が0〜4 列が0〜4 ですから各列の和をその列の6番
目(Rowが5)に表示するには以下のようにします。数値は整数を仮定しています。
また、未記入であってもVal()でOKです。

procedure TForm1.Button1Click(Sender: TObject);
var
  iCol,iRow,Sum,value,code:integer;
begin
  for iCol := 0 to 4 do begin
    Sum := 0;
    for iRow := 0 to 4 do begin
      Val(StringGrid1.Cells[iCol,iRow],value,code);
      if code = 0 then Sum := Sum + value;
    end;
    StringGrid1.Cells[iCol,5] := IntToStr(Sum);
  end;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加