AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

stringgrid addieren

Ein Thema von horst · begonnen am 18. Dez 2004 · letzter Beitrag vom 20. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#1

stringgrid addieren

  Alt 18. Dez 2004, 13:10
wie kann man zum multiplizieren zusätzlich das addieren hinzuzufügen, es gelingt mir nicht...

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  i, y, x: integer;
  sum, m1, m2: real;
  nr, s, sMyExpression: string;
begin
  for y := 1 to 22 do
  begin
    sum := 0;
    for i := 1 to 12 do
    begin
      if STringGrid1.Cells[i, y] <> 'then
      begin
        nr := StringGrid1.Cells[i, y];
        x := pos('*', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + (m1 * m2);
        end
        else
        begin
          nr := StringGrid1.Cells[i, y];
          nr := nr;
          sum := sum + strtofloat(nr);
        end;
        sMyExpression := FloatToStr(sum);
        stringgrid1.Cells[13, y] := sMyExpression;
      end;
    end;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

Re: stringgrid addieren

  Alt 18. Dez 2004, 13:28
was willst du denn multiplizieren kram nach kristallkugel.... und was willst du überhaupt machen ? es wäre einfacher einen kurzen text zu schreiben, was deine prozedur machen soll, damit man es nicht selber heraustüfteln muss...
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#3

Re: stringgrid addieren

  Alt 18. Dez 2004, 13:54
hallo...
es geht um ein stringgrid.
wenn in einer stringgridzelle z.b. 3*4 steht dann wird das ergebnis (12) in zelle 23 eingetragen.
zusätzlich soll das (addieren)
berücksichtigt werden, also wenn 12+2 in einer zelle steht soll in zelle 23 eingetragen werden
ich bekomme bei meinen versuchen immer nur 2 rechenmöglichkeiten realisiert, nie alle 3 auf einmal.

der betreffende teil des scripts liegt hier.

Delphi-Quellcode:
if STringGrid1.Cells[i, y] <> 'then
      begin
        nr := StringGrid1.Cells[i, y];
        x := pos('*', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + (m1 * m2);
        end
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#4

Re: stringgrid addieren

  Alt 18. Dez 2004, 16:59
hoffe, dass ich dich richtig verstanden habe...
.. aber so sollte es gehen (nicht getestet)...

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  i, y, x: integer;
  sum, m1, m2: real;
  nr, s, sMyExpression: string;
begin
  for y := 1 to 22 do
  begin
    sum := 0;
    for i := 1 to 12 do
    begin
      if STringGrid1.Cells[i, y] <> 'then
      begin
        nr := StringGrid1.Cells[i, y];
        x := pos('*', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + (m1 * m2);
        end

        x := pos('+', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + m1 + m2;
        end;
      end;
    end;
    sMyExpression := FloatToStr(sum);
    stringgrid1.Cells[23, y] := sMyExpression; ' <- hier sollte wohl 23 stehen oder?
end;
end;
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#5

Re: stringgrid addieren

  Alt 18. Dez 2004, 20:18
@ibp
ich danke dir für dein Interesse...
leider passiert nix, ich habs nochmal angepasst, es funktioniert jetzt zar das addieren und das zusammenzählen der zellen aber das multipizieren klappt nun nicht mehr.

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var
  i, y, x: integer;
  sum, m1, m2: real;
  nr, s, sMyExpression: string;
begin
  for y := 1 to 22 do
  begin
    sum := 0;
    for i := 1 to 12 do
    begin
      if STringGrid1.Cells[i, y] <> 'then
      begin
        nr := StringGrid1.Cells[i, y];
        x := pos('*', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + (m1 * m2);
        end;

        x := pos('+', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + m1 + m2;
        end
        else
        begin
          nr := StringGrid1.Cells[i, y];
          nr := nr;
          sum := sum + strtofloat(nr);
        end;
        sMyExpression := FloatToStr(sum);
        stringgrid1.Cells[13, y] := sMyExpression;
      end;
    end;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#6

Re: stringgrid addieren

  Alt 18. Dez 2004, 22:01
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var
  i, y, x: integer;
  sum, m1, m2: real;
  nr, s, sMyExpression: string;
begin
  for y := 1 to 22 do
  begin
    sum := 0;
    for i := 1 to 12 do
    begin
      if STringGrid1.Cells[i, y] <> 'then
      begin
        nr := StringGrid1.Cells[i, y];
        x := pos('*', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + (m1 * m2);
        end;

        x := pos('+', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + m1 + m2;
        end
   {    ... das weglassen!
        else
        begin
          nr := StringGrid1.Cells[i, y];
          nr := nr;
          sum := sum + strtofloat(nr);
        end;
  }

        sMyExpression := FloatToStr(sum);
        stringgrid1.Cells[13, y] := sMyExpression;
      end;
    end;
  end;
end;
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#7

Re: stringgrid addieren

  Alt 18. Dez 2004, 23:28
vielen dank...
es klappt fast, beim ersten klick auf den button wird alles ausgerechnet bis auf das zusammenzählen der stringgridzellen.
http://www.hamiltons-versand.de/delphi/fehler_a.jpg

wenn ich weitere zahlen eingebe wird nicht mehr gerechnet.
http://www.hamiltons-versand.de/delphi/fehler.jpg

grüße
horst
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#8

Re: stringgrid addieren

  Alt 19. Dez 2004, 10:09
... nun habe ich verstanden was du machen willst , manchmal sagen bilder mehr als tausend worte

... so sollte es funktionieren!...
- für die gesamtsumme brauchst du noch eine variable, da sum ja bei jedem zeilendurchlauf gelöscht wird!

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var
  i, y, x: integer;
  sum, m1, m2, gesamtsum: real;
  nr, s, sMyExpression: string;
begin
  gesamtsum:=0;
  for y := 1 to 22 do
  begin
    sum := 0;
    for i := 1 to 12 do
    begin
      if STringGrid1.Cells[i, y] <> 'then
      begin
        nr := StringGrid1.Cells[i, y];
        x := pos('*', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + (m1 * m2);
        end
        else
        begin
          x := pos('+', nr);
          if x > 0 then
          begin
            m1 := strtofloat(copy(nr, 1, x - 1));
            m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
            sum := sum + m1 + m2;
          end
          else
            sum := sum + strtofloat(nr);
        end;

        sMyExpression := FloatToStr(sum);
        stringgrid1.Cells[13, y] := sMyExpression;
        gesamtsum:= gesamtsum + sum;
      end;
    end;
  end;
  stringgrid1.Cells[13, 23] := FloatToStr(gesamtsum);
end;
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#9

Re: stringgrid addieren

  Alt 19. Dez 2004, 10:36
habs nun verstanden
es funktioniert

vielen dank
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#10

Re: stringgrid addieren

  Alt 20. Dez 2004, 09:28
hallo...versuche nun schon eine ganze weile herauszufinden warum das gesamt-ergebnis nicht stimmt.
bekomme bei dieser rechnung als ergebnis 83
http://www.hamiltons-versand.de/delphi/fehler_a.jpg

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var
  i, y, x: integer;
  sum, m1, m2, gesamtsum: real;
  nr, s, sMyExpression: string;
begin
  gesamtsum:=0;
  for y := 1 to 22 do
  begin
    sum := 0;
    for i := 1 to 12 do
    begin
      if STringGrid1.Cells[i, y] <> 'then
      begin
        nr := StringGrid1.Cells[i, y];
        x := pos('*', nr);
        if x > 0 then
        begin
          m1 := strtofloat(copy(nr, 1, x - 1));
          m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
          sum := sum + (m1 * m2);
         
        end
        else
        begin
          x := pos('+', nr);
          if x > 0 then
          begin
            m1 := strtofloat(copy(nr, 1, x - 1));
            m2 := strtofloat(copy(nr, x + 1, length(nr) - x));
            sum := sum + m1 + m2;

          end
          else
          begin
            nr := StringGrid1.Cells[i, y];
            nr := nr;
            sum := sum + strtofloat(nr);

          end;
        end;

        sMyExpression := FloatToStr(sum);
        stringgrid1.Cells[13, y] := sMyExpression;
        gesamtsum:= gesamtsum + sum;
      end;
    end;
  end;
  stringgrid1.Cells[13, 23] := FloatToStr(gesamtsum);
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz