AGB  ·  Datenschutz  ·  Impressum  







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

Stringgrid Plus Minus Vergleich

Ein Thema von fl63 · begonnen am 25. Jun 2011 · letzter Beitrag vom 25. Jun 2011
Antwort Antwort
Seite 1 von 2  1 2      
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#1

Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 14:50
Delphi-Version: 5
Hallo

Ich habe folgendes Problem:

Delphi-Quellcode:
procedure TForm1.PlusMinus(Sender: TObject);
var
i :integer; k,l:Real;
begin

 JvSG1.Cells[9,1] := '00';
     begin
     For i:= 1 to JvSG1.RowCount-1 do //Plus Minus in die Spalte Einfügen
       begin
        k:= StrToFloat(JvSG1.Cells[2,i]); l:= StrToFloat(JvSG1.Cells[2,i+1]);
       If k > l then JvSG1.Cells[9,i+1] := '-1';
       If k < l then JvSG1.Cells[9,i+1] := '+1';
       If k = l then JvSG1.Cells[9,i+1] := '0';
       end;
     end; // Plus Minus Einfügen beendet
  BerechneSummenspaltePlusMinus(Sender);
end;

procedure TForm1.BerechneSummenspaltePlusMinus(Sender:TObject);
var i,Summe :integer;

begin
Summe := 100; JvSG1.Cells[10,1] := '100'; //Startwerte
 Label1.Caption:=JvSG1.Cells[10,1];
   For i:= 1 to JvSG1.RowCount-1 do
      begin
      Summe := Summe + StrToInt(JvSG1.Cells[9,i]);
      JvSG1.Cells[10,i] := IntToStr(Summe);
      end;
end;
procedure PlusMinus ist fehlerfrei
erzeugt aus Vergleichswerten +1, 0 oder -1 in einer Spalte

procedure Berechne SummeSpalte... ist fehlerbehaftet
sämtliche Werte der PlusMinus Spalte sollen zu einem Startwert addiert werden und die Ergebnisse in einem Chart angezeigt werden.

Problem: keinerlei Anzeige in Spalte 10

Bitte um Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 15:02
Spalte 10 oder Spalte 11? BTW: Wäre es nicht günstiger, Logik und Darstellung zu trennen? Ich würde mir ja ein 2-dimensionales Array (oder wenn es gemischte Zahlentypen sind, ein 1-dimensionales Array of record) deklarieren und da meine Zahlen reinpacken. Damit lässt es sich IMO viel besser rechnen, das StringGrid dient dann nur noch zur Darstellung des Array-Inhalts.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#3

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 16:19
@DeddyH
Natürlich 11te Spalte.

Dennoch zeigt IndexSpalte 10 nichts an.

Trennung zwischen Logik und Anzeige ist für mein winziges Programm vielleicht nicht nötig.
Es interessiert mich dennoch. Im Anschluß an die Lösung dieses Problems, werde ich das ganze nochmals überdenken.
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 16:34
Und dies ist bei beiden korrekt?
Delphi-Quellcode:
If k > l then JvSG1.Cells[9,i+1] := '-1';
If k < l then JvSG1.Cells[9,i+1] := '+1';
If k = l then JvSG1.Cells[9,i+1] := '0';

 Summe := Summe + StrToInt(JvSG1.Cells[9,i]);// i+1 ???
Gruss alfold
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#5

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 16:39
Und dies ist bei beiden korrekt?
Delphi-Quellcode:
If k > l then JvSG1.Cells[9,i+1] := '-1';
If k < l then JvSG1.Cells[9,i+1] := '+1';
If k = l then JvSG1.Cells[9,i+1] := '0';

 Summe := Summe + StrToInt(JvSG1.Cells[9,i]);// i+1 ???
Gruss alfold
Bei beiden korrekt??
Was meinst du??
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 16:59
....
sämtliche Werte der PlusMinus Spalte sollen zu einem Startwert addiert werden und die Ergebnisse in einem Chart angezeigt werden.
Weil Du einmal Zeile i+1 zum füllen angibst und dann nur mit Zeile i die Summe berechnest. Obwohl in Zeile
JvSG1.Cells[9,1] := '00' '00' drinsteht?

Gruss alfold
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#7

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 17:16
Also die PlusMinus Prozedur funktioniert einwandfrei von der ersten bis zur letzten Zeile stehe Nullen plusEinsen oder MinusEinsen drin.

Die SummenProzedur hat den Startwert Summe= 100, und darauf sollen die Nullen usw. addiert werden Summe := Summe + InttoStr(Cell[9,i]).
Als Ergebnis soll in Cell[10,i] jeweils die Neue Summe stehen.

JvSG1.Cells[9,1] := '00' soll nur als Füllzeichen stehen, kann auch weggelassen werden.

Weil Du einmal Zeile i+1 zum füllen angibst und dann nur mit Zeile i die Summe berechnest.

Gruss alfold
Zeile i wird mit Zeile i+1 verglichen.
Der Quelltext ist vielleicht nicht modern aber korrekt.
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 17:23
Warum setzt Du nicht ein Breakpoint an der Stelle
 Summe := Summe + StrToInt(JvSG1.Cells[9,i]); und dann step by step die Werte auslesen ob es stimmt was da passieren soll.

Gruss alfold
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#9

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 17:34
Neuer Quelltext:

Delphi-Quellcode:
procedure TForm1.PlusMinusGrafik2(Sender: TObject);
var
i,Summe :integer; k,l:Real;
begin
Summe := 100;
//JvSG1.InsertCol(9);
 JvSG1.Cells[9,1] := '00';
     begin
     For i:= 1 to JvSG1.RowCount-1 do //Plus Minus in die Spalte Einfügen
       begin
        k:= StrToFloat(JvSG1.Cells[2,i]); l:= StrToFloat(JvSG1.Cells[2,i+1]);
       If k > l then JvSG1.Cells[9,i+1] := '-1';
       If k < l then JvSG1.Cells[9,i+1] := '+1';
       If k = l then JvSG1.Cells[9,i+1] := '0';
      Summe := Summe + StrToInt(JvSG1.Cells[9,i]);
      JvSG1.Cells[10,i] := IntToStr(Summe);
       end;
     end; // Plus Minus Einfügen beendet
// BerechneSummenspaltePlusMinus(Sender);
end;
Jetzt habe ich mal die Zwei Prozeduren in eine geschrieben.

IndexZeile[10,i] wird jetzt bis auf die &&vorletzte&& Zeile ausgefüllt.

Zeile (RowCount-1)-1 ist die vorletzte Zeile und nicht RowCount-1.
Warum??
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 17:57
RowCount -1 ist die letzte Zeile. Verstehe deine Frage nicht.
Allerdings hätt es hier
JvSG1.Cells[9,i+1] knallen müssen! Weil Du auf eine Zeile zugreifst die nicht da ist!?

Seeehr mergwürdig

Gruss alfold
  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 03:45 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