Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   StringGrid mit Zahlenfolge füllen (https://www.delphipraxis.net/202478-stringgrid-mit-zahlenfolge-fuellen.html)

Kratos 8. Nov 2019 11:40

Delphi-Version: 10.2 Tokyo

StringGrid mit Zahlenfolge füllen
 
Moin Leute,

ich bin vermutlich blind und habe nicht den richtigen Thread in DP gefunden, denn ich denke, dass diese Thematik oft aufkommt und recht einfach zu lösen ist.

Nun denn.
Ich habe ein TSringGrid mit
Delphi-Quellcode:
String1.ColCount
Spalten.
Ich möchte, dass die erste Zeile mit den Zahlen 1,2,3,4,5,6,7 befüllt wird.
Bedeutet, dass die erste Zeile so aussehen soll:
Delphi-Quellcode:
1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7
usw

Ich denke, dass ich 2 for-Schleifen brauche, die ineinander verschachtelt sind.
Die erste for-Schleife muss von 1 bis
Delphi-Quellcode:
StringGrid1.ColCount
zählen und die andere von 1-7.

Mein bisheriger Code überschreibt die jeweilige Zelle immer bis 7 bevor es auf die nächste Zelle springt.
Code:
for i := 1 to StringGrid1.ColCount do
  begin
    for j := i to 7 do
    begin
      StringGrid1.Cells[i,0] := IntToStr(j);
    end;
  end;
Kann mir bitte jemand weiterhelfen? :D

PS: es ist von mir beabsichtigt, dass ich erst ab der zweiten Zellen anfange zu befüllen.

Moombas 8. Nov 2019 11:59

AW: StringGrid mit Zahlenfolge füllen
 
So müsste es gehen, jedoch ungetestet.
Tipp: Nimm am besten bessere Namen für die Variablen. z.B.:

Delphi-Quellcode:
var
  Spalte, Zahl : Integer;
begin
  Zahl := 1;
  for Spalte := 1 to StringGrid1.ColCount - 1 do // das "- 1" fehlte bei dir, da du sonst über das Ziel hinaus gehst und somit einen Fehler produzierst.
  begin
    StringGrid1.Cells[Spalte, 0] := inttostr(Zahl);
    if Zahl = 7 then //Wenn 7 erreicht ist, wieder von vorne Anfangen
    begin
      Zahl := 1;
    end else //Sonst: Zahl um 1 erhöhen
    begin
      inc(Zahl);
    end;
  end;
end;

Jasocul 8. Nov 2019 12:01

AW: StringGrid mit Zahlenfolge füllen
 
Bitte die Schleife nur bis ColCount - 1 laufen lassen

Kratos 8. Nov 2019 12:11

AW: StringGrid mit Zahlenfolge füllen
 
Vielen Dank für die schnelle Antwort!

Ich hab noch ein IntToStr() eingefügt und jetzt funktioniert es genau so, wie ich das möchte!
Danke dir! :)

VG
Kratos

EDIT:
@Jasocul
Moombas hatte es in seinem Kommentar im Code erwähnt. Ich hab es in meinen Code aber schon übernommen :)

Uwe Raabe 8. Nov 2019 12:28

AW: StringGrid mit Zahlenfolge füllen
 
Geht auch etwas kürzer:
Delphi-Quellcode:
for i := 1 to StringGrid1.ColCount - 1 do
  begin
    StringGrid1.Cells[i,0] := IntToStr(((i - 1) mod 7) + 1);
  end;

Moombas 8. Nov 2019 12:32

AW: StringGrid mit Zahlenfolge füllen
 
Zitat:

Zitat von Kratos (Beitrag 1451011)
Vielen Dank für die schnelle Antwort!

Ich hab noch ein IntToStr() eingefügt und jetzt funktioniert es genau so, wie ich das möchte!
Danke dir! :)

VG
Kratos

EDIT:
@Jasocul
Moombas hatte es in seinem Kommentar im Code erwähnt. Ich hab es in meinen Code aber schon übernommen :)

XD stimmt das hatte ich vergessen -.-

Kratos 8. Nov 2019 12:54

AW: StringGrid mit Zahlenfolge füllen
 
@Uwe Raabe

Danke dir! So einen Lösungsansatz hatte ich gar nicht auf dem Schirm^^

freimatz 11. Nov 2019 16:17

AW: StringGrid mit Zahlenfolge füllen
 
Hoi, ich fand den anderen lesbarer und würde den bevorzugen auch wenn er länger ist.

Wenn Du das doch nehmen willst dann schlage ich vor das entsprechend zu dokumentieren. Ein erfahrener Delphianer kommt zwar schnell drauf, für andere wäre es eine Hilfe.


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