Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.06.2011, 11:57
Мишка-90 Мишка-90 вне форума
Прохожий
 
Регистрация: 25.03.2011
Сообщения: 24
Репутация: 10
По умолчанию счет "итого" в StringGrid

всем доброго времени суток.. помогите написать пожалуйста код.. нужно чтобы в ячейках стринггрида считались данные во всей таблице одновременно и выводило результат в некое "итого". которое находится под каждым считаемым столбцом грубо говоря.. я написал код, который может считать только по одному столбцу

Код:
var
d : array[0..300] of real;
i,j : integer;

d[1] := 0;
      for i:=6 to StringGrid1.RowCount-10 do d[1] := d[1] + StrToFloat(StringGrid1.Cells[2,i]);
        StringGrid1.Cells[2,30]:= FloatToStr(d[1]);

всего в нем 262 столбца.. как правильно сделать цикл для всего стринггрида?
Ответить с цитированием
  #2  
Старый 07.06.2011, 12:11
Janom Janom вне форума
Начинающий
 
Регистрация: 04.02.2011
Адрес: Москва
Сообщения: 148
Версия Delphi: 7
Репутация: 133
По умолчанию

Что-то типа того:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  i,j:Cardinal;
  Sum:real;
begin
for i:=0 to StringGrid1.ColCount-1 do
  begin
    for j:=0 to StringGrid1.RowCount-2 do
      begin
        StringGrid1.Cells[i,j]:=InputBox('','','');
      end;
  end;

for i:=0 to StringGrid1.ColCount-1 do
  begin
    Sum:=0;
    for j:=0 to StringGrid1.RowCount-2 do
      begin
        Sum:=Sum+StrToFloat(StringGrid1.Cells[i,j]);
      end;
    StringGrid1.Cells[i,StringGrid1.RowCount-1]:=FloatToStr(Sum);
  end;
end;
Ответить с цитированием
  #3  
Старый 07.06.2011, 12:12
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Код:
  For i:= 0 to StringGrid1.ColCount - 1 do
    For j:= 0 to StringGrid1.RowCount - 1 do
Ответить с цитированием
  #4  
Старый 07.06.2011, 12:13
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 339
Версия Delphi: 10.4
Репутация: 429
Сообщение

Код:
var
d : array[0..300] of real;
i,j : integer;

d[1] := 0;
for j := 0 to StringGrid1.ColCount - 1 do      
for i:=6 to StringGrid1.RowCount-10 do d[1] := d[1] + StrToFloat(StringGrid1.Cells[2,i]);
        StringGrid1.Cells[2,30]:= FloatToStr(d[1]);
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Ответить с цитированием
  #5  
Старый 07.06.2011, 12:17
Мишка-90 Мишка-90 вне форума
Прохожий
 
Регистрация: 25.03.2011
Сообщения: 24
Репутация: 10
По умолчанию спасибо

этот кусочек кода не пригодился:
Код:
for i:=0 to StringGrid1.ColCount-1 do
  begin
    for j:=0 to StringGrid1.RowCount-2 do
      begin
        StringGrid1.Cells[i,j]:=InputBox('','','');
      end;
  end;


Вы мне очень помогли!! спасибо большое!!!
Ответить с цитированием
  #6  
Старый 07.06.2011, 12:20
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Вот так элегантнее, т.к. подсчет идет налету:
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
Var Row: Integer;
    Summ: Extended;
    Table: TStringGrid;
begin
 Table := TStringGrid(Sender);
 if ACol = Table.FixedCols - 1 then Exit;
 Summ := 0;
 for Row := Table.FixedRows to Table.RowCount - 2
 do Summ := Summ + StrToFloatDef(Table.Cells[ACol,Row], 0);
 if Table.Cells[ACol,Table.RowCount - 1] <> FloatToStr(Summ)
 then Table.Cells[ACol,Table.RowCount - 1] := FloatToStr(Summ);
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:04.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter