[C++] Nieudane sumowanie liczb z jednej kolumny StringGrida

Witam. Chce zsumowac wszystkie liczby znajdujace się w jednej kolumnie StringGrida. Moj kod wygla tak:

int i;

for(i=1; iStringGrid1->RowCount; i++)

{

Form5->Edit1->Text=Form5->Edit1->Text.ToDouble()+Form5->StringGrid1->Cells[4].ToDouble();

}

Po uruchomieniu podaniu danych i nacisnieciu przycisku wyskakuje błąd.

Proszę o pomoc. (Dla zmiennych typu int tez probowalem)

Może podzieliłbyś się typem błędu. Produkty borlandowskie są dość komunikatywne jeśli chodzi o wyjątki.

Proszę, oto błąd:

dddddwg7.png

Masz problem z konwersją do liczb rzeczywistych. Właściwie to pisze że nie masz nic albo w kontrolce Edit1 (tzn. jest pusta) albo w komórce gridu. Czy wszystkie komórki są wypełnione? Piszesz że testowałeś na liczbach całkowitych, więc problem przecinka pewnie nie istnieje. Z kodu nie jest jasne co może być źle. Ja bym rozbił tą jedną linijkę i sprawdził debuggerem co się dzieje krok po kroku:

double a = Form5->Edit1->Text.ToDouble();

double b = Form5->StringGrid1->Cells[4][i].ToDouble();

Form5->Edit1->Text = String(a+b);

daj punkt debuggera na pierwszej linijce i sprawdź który .ToDouble() rzuca exception i dlaczego.

No bo wlasnie Edit1 jest pusty, ale wlasnie o to chodzi, zeby tam przypisywana byla suma z wszystkich komorek w kolumnie. Naprawde nie mam pojecia dlaczego to nie dziala. Pozdrawiam, moze ktos pomoze.

Na miłość boską, ale jak Edit1 jest NA POCZĄTKU pusty, to zapytaj siebie jak może być prawidłowa konwersja pustego stringa do liczby double? Przecież to rzuca wyjątek - w pierwszym obiegu pętli próbujesz skonwertować “pusty” string do liczby double. Wstaw tekst “0” do Edit1->Text przed pętlą, przecież nie zmieni to wyniku!

O wlasnie o tym zapomnialem.Bardzo Dziekuje za pomoc. Dziala sumowanie.

Super, powodzenia w dalszym kodowaniu.