cosi Geschrieben 3. November 2003 Teilen Geschrieben 3. November 2003 tach hab da ma nen problem und zwar bei delphi hab ich ein programm geschrieben was soweit ok ist und funktionieren würde aber wenn ich es starten will sagt er mir "im projekt bla bla ist eine exception der klasse EConvert error aufgetreten . meldung: ' " ist kein gültiger integerwert' . " und dann geht nüscht mehr. ich hab aber nirgenswo anführungszeichen in meiner unit drin. und nu? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Der Kleine Geschrieben 3. November 2003 Teilen Geschrieben 3. November 2003 Original geschrieben von cosi und nu? Postest du den Quelltext? *Im Novembernebel in die Glaskugel schauen is langweilig* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cosi Geschrieben 3. November 2003 Autor Teilen Geschrieben 3. November 2003 ob ichs mache? naja meinetwegen unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) StringGrid1: TStringGrid; Label1: TLabel; Edit1: TEdit; Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; x,i:integer; implementation {$R *.DFM} procedure TForm1.Button2Click(Sender: TObject); begin close; end; procedure TForm1.Button1Click(Sender: TObject); begin stringgrid1.cells[1,0]:='Name'; stringgrid1.cells[2,0]:='Vorname'; stringgrid1.cells[3,0]:='Punkte'; stringgrid1.cells[4,0]:='Prozente'; stringgrid1.cells[5,0]:='Note'; stringgrid1.cells[0,1]:='1'; stringgrid1.cells[0,2]:='2'; stringgrid1.cells[0,3]:='3'; stringgrid1.cells[0,4]:='4'; For i:=1 To StringGrid1.rowcount-1 Do begin x:=round((strtoint(stringgrid1.Cells[3,i])/25)*100); stringgrid1.cells[4,i]:=inttostr(x)+'%'; case x of 0..12:stringgrid1.cells[5,i]:='6'; 13..22:stringgrid1.cells[5,i]:='5-'; 23..32:stringgrid1.cells[5,i]:='5'; 33..42:stringgrid1.cells[5,i]:='5+'; 43..48:stringgrid1.cells[5,i]:='4-'; 49..54:stringgrid1.cells[5,i]:='4'; 55..60:stringgrid1.cells[5,i]:='4+'; 61..65:stringgrid1.cells[5,i]:='3-'; 66..70:stringgrid1.cells[5,i]:='3'; 71..75:stringgrid1.cells[5,i]:='3+'; 76..80:stringgrid1.cells[5,i]:='2-'; 81..85:stringgrid1.cells[5,i]:='2'; 86..91:stringgrid1.cells[5,i]:='2+'; 92..95:stringgrid1.cells[5,i]:='1-'; 96..99:stringgrid1.cells[5,i]:='1'; 100:stringgrid1.cells[5,i]:='1+'; end; end; end; end. hat was mit noten und prozente zu tun...schule halt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Der Kleine Geschrieben 3. November 2003 Teilen Geschrieben 3. November 2003 Dein Fehler liegt in der folgenden Zeile x:=round((strtoint(stringgrid1.Cells[3,i])/25)*100); Und zwar ist im Feld stringgrid1.Cells[3,i] nichts eingetragen und dieses nichts soll in einen Integerwert umgewandelt werden. Das funktioniert nicht. Trägst du vorher etwas ein, wie : begin stringgrid1.Cells[3,i]:='25'; x:=round((strtoint(stringgrid1.Cells[3,i])/25)*100); ... dann geht etwas. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cosi Geschrieben 4. November 2003 Autor Teilen Geschrieben 4. November 2003 was hatn eigentlich das round zu bedeuten? also bei x:=round(( bla...) und: For i:=1 To StringGrid1.rowcount-1 Do dieses rowcount-1 !? was rowcount is weiß ich aber warum minus 1?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pointerman Geschrieben 4. November 2003 Teilen Geschrieben 4. November 2003 was hatn eigentlich das round zu bedeuten? Die Werte die ins Grid eingetragen werden werden gerundet. Round rundet immer auf den nächsten ganzzahligen Wert. Kleiner Tip dazu: Geh mal mit dem Cursor im Quelltext auf "round" und drück F1;) dieses rowcount-1 !? was rowcount is weiß ich aber warum minus 1?? Rowcount gibt die Anzahl der Zeilen an. Der Zeilenindex beginnt aber bei 0. Wenn Du jetzt die Zeilen bis Rowcount durchlaufen lässt, gibt es eine Fehlermeldung die dir eine Indexüberschreitung ankreidet, weil der Index ja immer um 1 kleiner ist als Rowcount. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
grueni Geschrieben 4. November 2003 Teilen Geschrieben 4. November 2003 Original geschrieben von cosi x:=round((strtoint(stringgrid1.Cells[3,i])/25)*100); Verwende anstatt strToInt strToIntDef, das ist sicherer. z.B. x:=round((strtointDef(stringgrid1.Cells[3,i],0)/25)*100); In diesem Fall wird als Integerwert 0 angenommen, falls der String nicht umgewandelt werden kann. Den Defaultwert kannst du natürlich selbst wählen, schau einfach mal in der Hilfe nach. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cosi Geschrieben 5. November 2003 Autor Teilen Geschrieben 5. November 2003 danke schön erstmal für eure hilfe! =) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.