Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Математические вычисления в StringGrid


Автор: Ярослав 9.6.2009, 01:55
Помогите пожалуйста с работой StringGrid,а именно как  выполнять математические вычисления с ячейками например 1-я ячейка прибавить 2-ю ячейку в третей ответ.Заранее спосибо

Автор: Dmi3ev 9.6.2009, 02:40
ну если подробно, то так
Код

int a=StrToInt(StringGrid1->Cells[1][1]);
int b=StrToInt(StringGrid1->Cells[2][1]);
StringGrid1->Cells[3][1]=IntToStr(a+b);

при этом у Грида StringGrid1->Cells[1][1] первый индекс - индекс столбца, а второй - строки (скорее всего ты этого не знал, поэтому написал)

Автор: XPyCT 9.6.2009, 09:25
to Ярослав

Предлагаю вам для наглядности вариант с умножением!
прошу не пинать писал на скорую руку вроде все пашет!


http://img520.imageshack.us/my.php?image=gridw.jpg


  компонент 
 StringGrid    = sgTable

Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 //----Заполняем StringGrid  Колонки
 //Найменование
sgTable->Cells[1][1]="Молоко";
sgTable->Cells[1][2]="Хлеб";
sgTable->Cells[1][3]="Пиво";
sgTable->Cells[1][4]="Водка";

 //Количество
sgTable->Cells[2][1]="50";
sgTable->Cells[2][2]="70";
sgTable->Cells[2][3]="300";
sgTable->Cells[2][4]="450";

 //Стоимость
sgTable->Cells[3][1]="5,50";
sgTable->Cells[3][2]="4,25";
sgTable->Cells[3][3]="8,35";
sgTable->Cells[3][4]="10,75";


}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormShow(TObject *Sender)
{

//-------Задаем размер колонок начало
sgTable->ColWidths[0]=30;
sgTable->ColWidths[1]=120;
sgTable->ColWidths[2]=40;
sgTable->ColWidths[3]=40;
sgTable->ColWidths[4]=40;
sgTable->ColWidths[5]=40;
//-------Задаем размер колонок окончание

//-------Найменование стобцов фиксированных рядов начало
sgTable->Cells[0][0]="№";
sgTable->Cells[1][0]="Найменование";
sgTable->Cells[2][0]="Кол-во";
sgTable->Cells[3][0]="цена";
sgTable->Cells[4][0]="Итого";
sgTable->Cells[5][0]="Общая";

for (int i=1; i <  sgTable->RowCount; i++)
     sgTable->Cells[0][i] = IntToStr(i);
//-------Найменование стобцов фиксированных рядов окончание



}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
float kost, rez;
int kol;
rez=0;

// --Подсчет всей суммы товара
//-- по каждой ячейке
for (int i=1; i <  sgTable->RowCount; i++){

    kol= StrToInt(sgTable->Cells[2][i]);
    kost= StrToFloat(sgTable->Cells[3][i]);
    rez = kol * kost;
    sgTable->Cells[4][i]= FloatToStr(rez);
    }

//-- Общая сумма
    rez=0;
  for (int i=1; i <  sgTable->RowCount; i++){
       rez += StrToFloat(sgTable->Cells[4][i]);
      sgTable->Cells[5][sgTable->RowCount-1] = FloatToStr(rez);
      }
    rez=0;
}
//---------------------------------------------------------------------------


Автор: Ярослав 19.6.2009, 21:38
Спосибо Вам огромное

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)