![]() |
Re: Schleifen imStringGrid
Zitat:
Vielleicht kannst du ja auch mal etwas Quelltext zeigen, damit man das Problem besser versteht. MfG Binärbaum |
Re: Schleifen imStringGrid
Das ist mein bisheriger Quelltext:
Code:
So wie er jetzt ist wird das Programm gar nicht erst gestartet, aber wenn ich alles in Integer Werte mache, wird das Programm gestartet, es wird aber nichts ausgegeben.
var
Form1: TForm1; min, max, schritt,i:real ; procedure TForm1.Button1Click(Sender: TObject); begin min:=0; max:=0; schritt:=0; min:=strtofloat(E_min.text); max:=strtofloat(E_max.text); schritt:=strtofloat(E_Schrittweite.text); repeat i:=min+schritt; until i=max; Sg.cells[i,0]:=floattostr(i); end; |
Re: Schleifen imStringGrid
Zitat:
Delphi-Quellcode:
IN die repeat-Schleife schreiben, wenn mehrere Zahlen ausgegeben werden sollen:
Sg.cells[i,0]:=floattostr(i);
Delphi-Quellcode:
MfG
repeat i:=min+schritt;
Sg.cells[i,0]:=floattostr(i); until i>=max; Binärbaum |
Re: Schleifen imStringGrid
Code:
Wenn ich das so mache, wird das Programm nicht gestartet, sondern es kommt die Meldung "Inkompatible Typen:'Integer' und 'Real'". Wenn ich dann aber alles in Integer umwandle
begin
min:=0; max:=0; schritt:=0; min:=strtofloat(E_min.text); max:=strtofloat(E_max.text); schritt:=strtofloat(E_Schrittweite.text); repeat i:=min+schritt; Sg.cells[i,0]:=floattostr(i); until i=max; end;
Code:
Dann wird immer noch nichts ins StrinGrid geschrieben.
begin
min:=0; max:=0; schritt:=0; min:=strtoint(E_min.text); max:=strtoint(E_max.text); schritt:=strtoint(E_Schrittweite.text); repeat i:=min+schritt; Sg.cells[i,0]:=inttostr(i); until i=max; end; |
Re: Schleifen imStringGrid
Welche Typen nimmst du denn nun für min, max und Schritt? Integer oder real?
Bei Integer musst du ![]() ![]() Und welche Werte gibst du denn für min, max und schritt ein? [Edit] Hast du schon mal die Prozedur von oben ausprobiert? Falls nicht, hier nochmal eine verbesserte Version:
Delphi-Quellcode:
(ungetestet)
procedure Zahlen_in_StringGrid(MinWert, MaxWert: Integer; abstand, zeile: Cardinal; var strGrd: TStringGrid);
var i,j: Integer; begin if MaxWert<MinWert then begin i:= MaxWert; MaxWert:= MinWert; MinWert:= i; end;//if i:= minWert; while i<=MaxWert do begin j:= (i-MinWert) div abstand +1; strGrd.Cells[j, zeile]:= IntToStr(i); i:= i+abstand; end;//while end; Ein Beispielaufruf könnte dann so aussehen:
Delphi-Quellcode:
[/Edit]
//Zahlen von 0 bis 8 mit Abstand 2 in die erste Zeile des StringGrid SG
Zahlen_in_StringGrid(0, 8, 2, 1, SG); MfG Binärbaum |
Re: Schleifen imStringGrid
Ja, das funktioniert!
Könntest du mir kurz erklären was da im Quelltext steht? Und könnte man das so umwandeln das man das mit reellen Zahlen machen kann? |
Re: Schleifen imStringGrid
Zitat:
Zitat:
Delphi-Quellcode:
MfG
procedure Zahlen_in_StringGrid(MinWert, MaxWert, abstand: Real; zeile: Cardinal; var strGrd: TStringGrid);
var i: Real; j: Integer; begin if MaxWert<MinWert then begin i:= MaxWert; MaxWert:= MinWert; MinWert:= i; end;//if i:= minWert; abstand:= abs(abstand); while i<=MaxWert do begin j:= Round((i-MinWert)/abstand +1); strGrd.Cells[j, zeile]:= FloatToStr(i); i:= i+abstand; end;//while end; Binärbaum |
Re: Schleifen imStringGrid
Danke!! Es geht jetzt alles
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz