Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Graphen''' kein gültiger Integerwert (https://www.delphipraxis.net/58525-graphen-kein-gueltiger-integerwert.html)

r3p47 8. Dez 2005 13:10


Graphen''' kein gültiger Integerwert
 
Delphi-Quellcode:
procedure TMainForm.graph_buttonClick(Sender: TObject);
var
  i:integer;
begin
  //Deklarieren von Variablen
  a:=strtofloat(a_edit.text);
  b:=strtofloat(b_edit.text);
  c:=strtofloat(c_edit.text);

  //In Wertetabelle einfügen
  //Für späteren Gebrauch
  for i:=0 to 10 do
  begin
    x:=strtofloat(stringgrid1.cells[0,i]);
    y:=a*sqr(x)+b*x+c;
    stringgrid1.cells[1,i]:=floattostr(y);
  end;
  //KoordinatenSys Umdrehen
  SetMapMode(paintbox1.Canvas.Handle, MM_LOENGLISH);

{     | +y
      |
-x --------> +x
      |
      | -y

}

  //In die Mitte setzen
  SetViewPortOrgEx(Paintbox1.Canvas.Handle, (Paintbox1.Width div 2) + Paintbox1.Left, (Paintbox1.Height div 2) + Paintbox1.Top, nil);

  //KoSys begrenzen
  point.x:=0;
  point.y:=200;
  Paintbox1.Canvas.PenPos:=Point;
  Paintbox1.Canvas.Rectangle(-200,200,200,-200);

  //waagerechter Strich
  point.x:=-200;
  point.y:=0;
  Paintbox1.Canvas.PenPos:=Point;
  Paintbox1.Canvas.Lineto(200,0);

  //senkrechter Strich
  point.x:=0;
  point.y:=200;
  Paintbox1.Canvas.PenPos:=Point;
  Paintbox1.Canvas.Lineto(0,-200);


  for i:=0 to 10 do
  begin
      point.x:=strtoint(stringgrid1.Cells[0,i]);
      point.y:=strtoint(stringgrid1.Cells[1,i]);

      point2.x:=strtoint(stringgrid1.Cells[0,i+1]);
      point2.y:=strtoint(stringgrid1.cells[1,i+1]);

     //Vergrösserung des Massstabes
      point.x:=point.x+5;
      point.Y:=point.y+5;

      point2.x:=point2.x+5;
      point2.Y:=point2.y+5;

      paintbox1.Canvas.PenPos:=Point;
      paintbox1.Canvas.LineTo(Point2.x,Point2.y);
    end;
  end;

//Benennen
procedure TMainForm.FormCreate(Sender: TObject);
var
  i:integer;
begin
  for i:=0 to 10 do
  begin
    stringgrid1.cells[0,i]:=inttostr(i);
  end;
end;

end.
Fehlermeldung:
Zitat:

''' kein gültiger Integerwert.
Ich hab keine Ahnung woran das liegen könnte.
Erreichen will, ich dass der mir anhand von Daten aus einer Stringgrid einen Graphen zu einer quadratischen Funktion gibt.
Der Fehler kommt auf dem graph_button.
Das ist natürlich nicht das ganze Programm.

Hoffe ihr könnt mir n Tip geben, wo der Fehler liegt.

mfg
Rene

JWeis 8. Dez 2005 13:12

Re: Graphen''' kein gültiger Integerwert
 
wo taucht den deine fehlermeldung auf

Khabarakh 8. Dez 2005 13:15

Re: Graphen''' kein gültiger Integerwert
 
Sicher, dass alle 24 Gridzellen gefüllt sind?

zecke 8. Dez 2005 13:20

Re: Graphen''' kein gültiger Integerwert
 
Überprüfe mal ganz genau welche Werte du übergibst, vielleicht ist ein falscher Typ dabei oder eben wie Khabarakh (boa, einfach eingetippt und jeder buchstabe des namens stimmt :???:) gesagt hat, ob evtl. '' bzw. nichts übergeben wird, was zum fehler führt.

r3p47 8. Dez 2005 13:33

Re: Graphen''' kein gültiger Integerwert
 
Zitat:

Zitat von JWeis
wo taucht den deine fehlermeldung auf

Auf dem Graph Button, wo genau da kann ich nicht sagen, ich habs schon mit F8 versucht aber iregndwie zeigt er mir erst in der letzten Zeile n Fehler an, da find ich aber nichts.
Wie macht man das, dass er schrittweise prüft ob die Zeile stimmt?

Ja es müssten theoretisch alle Zellen gefüllt sein.

Delphi-Quellcode:
procedure TMainForm.Wertetabelle_buttonClick(Sender: TObject);
var
  i:integer;
begin
//Variablen deklarieren
  a:=strtofloat(a_edit.text);
  b:=strtofloat(b_edit.text);
  c:=strtofloat(c_edit.text);

//In Wertetabelle einfügen
  for i:=0 to 8 do
  begin
    x:=strtofloat(stringgrid1.cells[0,i]);
    y:=a*sqr(x)+b*x+c;
    stringgrid1.cells[1,i]:=floattostr(y);
  end;
end;
Auf dem Wertetabellen Button klappts ja.

Ich hab jetzt einfach mal für 10 8 eingesetzt, aber das Stringgrid müsste sich ja automatisch erweitern oder?
Ist ja auch egal, ich bekomme die gleiche Fehlermeldung, müssten aber alle Felder gefüllt sein, bei der Wertetabelle gehts halt.

thx erstmal

Binärbaum 8. Dez 2005 13:36

Re: Graphen''' kein gültiger Integerwert
 
Zitat:

Zitat von r3p47
Fehlermeldung:
Zitat:

''' kein gültiger Integerwert.

Diese Fehlermeldung sieht ganz danach aus, als ob versucht wird, einen leeren String mittels StrtoInt in einen Integer umzuwandeln. Also wird wahrscheinlich auf eine leere Zelle im StringGrid zugegriffen.

MfG
Binärbaum

Edit: Tippfehler

Airblader 8. Dez 2005 14:04

Re: Graphen''' kein gültiger Integerwert
 
Delphi-Quellcode:
point2.x:=strtoint(stringgrid1.Cells[0,i+1]);
Du füllst dein Stringgrid aber nur bis 10, hier erhälst du im letzten Schleifendurchlauf jedoch 11.

air

r3p47 11. Dez 2005 12:57

Re: Graphen''' kein gültiger Integerwert
 
Jop, danke das wars.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 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