![]() |
Problem mit StringGrid-Schleife
Hi hab lange nachgedacht.. sehs aber einfach nicht:
Delphi-Quellcode:
Will mit dieser Schleife ein String Grid befüllen allerding sieht das resultat wie folgt aus:
for i := 1 to DaysInMonth(date) do
begin if count = 7 then begin Kalender.Cells[count,row]:=IntToStr(i); inc(row); count:=0; end else begin Kalender.Cells[count,row]:=IntToStr(i); inc(count); end; end; 1 2 3 4 5 6 7 9 10 11 12 13 14 15 17 18 19 20 21 22 23 25 26 27 28 29 30 31 Er überspringt also die 8, 16 und 24 sieht jemand wieso? |
Re: Problem mit StringGrid-Schleife
Die erste Zelle oben links hat die Koordinaten [0,0]
|
Re: Problem mit StringGrid-Schleife
Einfacher geht es so:
Delphi-Quellcode:
mfg
for i := 0 to DaysInMonth(Now) - 1 do
StringGrid1.Cells[i mod 7, i div 7] := IntToStr(i+1); Patti |
Re: Problem mit StringGrid-Schleife
Falls das ein Kalender werden soll, fehlt Die jetzt noch FirstDayOfMonth aus den
![]() Grüß Wolfgang |
Re: Problem mit StringGrid-Schleife
Wen ichs jetz mal so mache wie ichs hab, da ich von mod und div noch nie was gehört habe...
sollte ich vielleicht mal die komplette prozedur einfügen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer; count: Integer; row: Integer; begin row:=1; count:=0; Tage:=DaysInMonth(date); MessageDlg('Willkommen heute ist der '+DateToStr(date)+' dieser Monat hat '+IntToStr(DaysInMonth(date))+' Tage!',mtInformation,[mbOk],0); for i := 1 to DaysInMonth(date) do begin if count = 7 then begin Kalender.Cells[count,row]:=IntToStr(i); inc(row); count:=0; end else begin Kalender.Cells[count,row]:=IntToStr(i); inc(count); end; end; @Wolfgang: Ich fange absichtlich in der zweiten reihe an damit oben Montag...Dienstag ect. stehen kann |
Re: Problem mit StringGrid-Schleife
Okay, aber der 1, des Monats sollte an der richtigen X_Position stehen
[Edit] Div teilt ganze Zahlen, das Ergebnis ist wieder ganz. Mod ist der ganzzahlige Rest einer Division. Steht aber auch in der OH [/Edit] Gruß Wolfgang |
Re: Problem mit StringGrid-Schleife
Womit mein problem noch immer nicht gelößt ist... siehe ganz oben...
ps:Ich habe vor die beschriftung Montag dienstag ect. passend zu verschieben... |
Re: Problem mit StringGrid-Schleife
Montag ist in jedem Kalender immer oben links. Wo ist das Problem?
|
Re: Problem mit StringGrid-Schleife
Wenn du auf div und mod verzichten und die Schleife so wie oben aufbauen willst, dann musst du folgendes machen:
Delphi-Quellcode:
mfg
row := 1;
count := 0; // for i := 1 to DaysInMonth(date) do begin if count = 7 then begin count := 0; // <-- erst Koordinaten setzen inc(row); Kalender.Cells[count,row] := IntToStr(i); //<-- dann schreiben inc(count); //<-- und count noch erhöhen end else begin Kalender.Cells[count,row] := IntToStr(i); inc(count); end; end; |
Re: Problem mit StringGrid-Schleife
Dankeschön ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 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 by Thomas Breitkreuz