AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit StringGrid-Schleife

Ein Thema von Fussel9 · begonnen am 27. Dez 2009 · letzter Beitrag vom 27. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 18:38
Hi hab lange nachgedacht.. sehs aber einfach nicht:

Delphi-Quellcode:
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;
Will mit dieser Schleife ein String Grid befüllen allerding sieht das resultat wie folgt aus:
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?
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 18:42
Die erste Zelle oben links hat die Koordinaten [0,0]
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 18:47
Einfacher geht es so:

Delphi-Quellcode:
for i := 0 to DaysInMonth(Now) - 1 do
  StringGrid1.Cells[i mod 7, i div 7] := IntToStr(i+1);
mfg
Patti
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 19:00
Falls das ein Kalender werden soll, fehlt Die jetzt noch FirstDayOfMonth aus den
DateUtils2

Grüß

Wolfgang
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 19:08
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
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 19:10
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
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 19:13
Womit mein problem noch immer nicht gelößt ist... siehe ganz oben...

ps:Ich habe vor die beschriftung Montag dienstag ect. passend zu verschieben...
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 19:19
Montag ist in jedem Kalender immer oben links. Wo ist das Problem?
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 19:19
Wenn du auf div und mod verzichten und die Schleife so wie oben aufbauen willst, dann musst du folgendes machen:

Delphi-Quellcode:
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;
mfg
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Problem mit StringGrid-Schleife

  Alt 27. Dez 2009, 19:23
Dankeschön
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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