Stringgrid i dodawanie kolumn

0

Witam panowie ma ktos pomysl jak w stringgrid mozna dodawac dwie kolumny a w trzeciej kolumnie otrzymac wynik

stringgrid1.Cols[3]:=strtofloat(stringgrid1.Cols[1]+stringgrid1.Cols[2]);

zrobilem cos takiego i nic nie wyszlo i jak bym chcial np wzor napisc

Prosze o pomoc [browar]

0

Po pierwsze myśleć i jeszcze raz myśleć. To po pierwsze. Po drugie Kolumny i wierze indeksuje się od zera, a
po trzecie zgadujesz chyba jakieś kombinacje i odporawiasz modły aby się skompilowało, trzeba pilnować jaki
typ z jakim się dodaje i używac funkcji konwertujących z głową, bo jak chcialeś dodać jako liczby dwa teksty?

  StringGrid1.Cells[0, 0] := '3';
  StringGrid1.Cells[1, 0] := '5';
  StringGrid1.Cells[2, 0] := FloatToStr(StrToFloat(StringGrid1.Cells[0, 0]) + StrToFloat(StringGrid1.Cells[1, 0]));
0

niby dziala ale wywala mi program

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
s:double;
begin

s:=strtofloat(stringgrid1.cells[1,i]+stringgrid1.cells[2,i]);
stringgrid1.Cells[3,i]:=floattostr(s);
end;

end.

nie wiem cos chyba z tym integerem jest nie tak ma ktos pomysl

0

oki zaraz sparwdze twoj kodzik a delphiego zaczynam sie uczyc :/ i troche ciezko ale niktore zeczy juz lapie

0
Vienio79 napisał(a)

niby dziala ale wywala mi program

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
s:double;
begin

s:=strtofloat(stringgrid1.cells[1,i]+stringgrid1.cells[2,i]);
stringgrid1.Cells[3,i]:=floattostr(s);
end;

end.

nie wiem cos chyba z tym integerem jest nie tak ma ktos pomysl

A gdzie w tym kodzie nadajesz wartość zmiennej I? Jeżeli zmienna liczbowa jest deklarowana lokalnie - to jej
wartość może być niemal dowolna, bo będzie zawierała jakieś "śmieci" z pamięci. A i koniecznie używaj przed
wysłaniem postów lub napisania cokolwiek w Internecie www.so.pwn.pl, bo jak widzę "zeczy" - to załamka ;/

0

dzieki olesio a wyraz rzeczy=zeczy to przypadkiem mi sie napisalo nie jestem jakims tam dyslektykiem itd.... ;] twój kodzik dziala tylko mysle jak zrobic jeszcze zeby mi liczyl we wszystkich wierszach hmmm.....Pomożesz ?? [browar]

0

wykozystaj petle for

0

petle for mialem ale wyrzucilem dlatego ze dane musialbym wprowadzic na do 6 wierszy

for i:=1 to 6 do

a tyle nie potrzebowalem i wykorzystalem edit1.text jako pole w ktorym wpisuje numer wiersza ktory chce obliczyc :) :-)

0

Jak chcesz przetestować pętlę for to możesz zrobić tak jak poniżej. We wszystkich kolumnach w 2 pierwsze
wiersze wstawiana jest losowa liczba z zakresu od 1 do 10 włącznie, zaś w trzeciej kolumnie pojawia się ich
suma. Aby losowanie działało ok, w zdarzeniu OnCreate dla formatki wpisz kod Randomize; jak widać banał.

var
  I : integer;
begin
  for I := 0 to StringGrid1.RowCount - 1 do
  begin
    StringGrid1.Cells[0, I] := IntToStr(Random(10) + 1);
    StringGrid1.Cells[1, I] := IntToStr(Random(10) + 1);
    StringGrid1.Cells[2, I] := FloatToStr(StrToFloat(StringGrid1.Cells[0, I]) +
      StrToFloat(StringGrid1.Cells[1, I]));
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1