[Code] Delphi Schleifenproblem

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von H5N1, 4. Oktober 2010 .

Schlagworte:
  1. 4. Oktober 2010
    Delphi Schleifenproblem

    Hallo ich möchte mit Hilfe einer verschachtelten Schleife ein Stringgrid gefüllen.
    Der Nutzer gibt einen Start und Endwert an.
    Nun soll das Stringgrid mit Hilfe einer verschatelten for Schleife befüllt werden.

    Code:
     intausgabe := intstartwert;
     for i := 0 to intendwert -1 do
     for j := 0 to intendwert -1 do
     begin
    
     strgrid1.Cells[j,i]:= IntToStr(intausgabe);
     intausgabe := intausgabe+1;
    
    end;
    Das habe ich momentan, funktioniert jedoch ganz und gar nicht. Leider habe ich auch gerade eine Denkblokade, sodass ich nicht klar komme und den Fehler nicht sehe :/

    MfG
    H5N1
     
  2. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    Wie soll das Ergebnis denn aussehen und in wieweit geht dein Code nicht ?
     
  3. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    Wenn du die Zellen einfach Zeile für Zeile durchnummeriert fühlen möchtest kannste es so machen:

    Code:
     for i := 0 to strgrid1.ColCount -1 do
     for j := 0 to strgrid1.RowCount -1 do
     begin
     strgrid1.Cells[j,i]:= IntToStr(intausgabe);
     intausgabe := intausgabe+1;
     end;
    
    Ansonsten, wie asdrexit schon vermerkt hat, worauf möchtest du hinaus?

    Mfg Rushh0ur
     
  4. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    Also der Benutzer soll 2 Zahlen eingeben.
    Einen Startwert und einen Endwert.
    Das String soll dann von der ersten Cell bis zu der Cell gehen die als Endwert angegeben wurde.
    D.h. ich sage von 1 bis 5 dann soll in die erste Zelle die 1 dann soll in die nächste Zelle die 2 und so weiter.
    Das klappt auch bedingt jedoch kommt dann in eine Zelle weiter unten das wäre dann mit der Koordinatenangabe 1,0 weitere werte und das führt das Programm soweit, bis Zällen in höhe des Endwertes^2 gefüllt wurden.

    Anschließend lese ich das ganze einfach nurnoch in ein Array ein.
     
  5. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    k ich weiss nich ob ich verstanden habe was du genau machen willst und was das problem ist aber versuch mal i und j auszutauschen:

    strgrid1.Cells[i,j]:= IntToStr(intausgabe);
     
  6. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    Nein dann gibt er ja alles in vertikaler Richtung aus. Soll schon in der Horizontalen ausgegeben werden.
     
  7. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    k sry dann raff ich nich was genau dein vorhaben ist und was das problem dabei ist^^
     
  8. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    Sry aber bei deiner Beschreibung wird dir keiner Helfen können, du hast jetzt nur beschrieben was dien Code macht aber nicht wirklich was er machen soll....

    Soll nun in jeder Zeile vom Start bis zum End-Wert die Spalten fortlaufend gleich befühlt werden?

    Code:
     
     intausgabe := intstartwert;
     for i := 0 to intendwert -1 do
     begin
     for j := 0 to strgrid1.ColCount -1 do
     strgrid1.Cells[i, j]:= IntToStr(intausgabe);
     
     intausgabe := intausgabe+1;
     end;
    
    Wenn nicht dann mach mal ne "Ansatz"-Tabelle hier.

    Mfg Rushh0ur
     
  9. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    Nein er soll eine Zeile befüllen mit dem Startwert beginnend.
    In die nächste Zelle kommt dann der Wert von der linken Zelle erhöht +1 bis zu dem Endwert.
    Wenn der Endwert erreicht ist, soll die Schleife beendet werden.

    So wie du es eben geschrieben hast, stimmt es soweit, jedoch füllt er die darunter liegenden Zeilen ebenfalls bis zum Endwert sieht dann ungefähr so aus(das StringGrid) :

    Code:
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    
    jede der Zahlen ist dann in einer Zelle.
     
  10. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    stehe ich total auf dem schlauf und raffe nur ich es immernoch nich? oder wisst ihr was das programm jetzt genau machen soll?

    genauso wie es die schleife von Rushh0ur macht oder?^^

    sollte es so nicht auch sein?

    willst du mehrere zahlen in einer zelle haben?
     
  11. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    Nein es soll nur einmal jede Zahl ausgegeben werden, das ist leider mein Problem, welches ich nicht realisiert bekomme. Das StringGrid soll praktisch dann einfach nur so sein :

    Code:
    1 2 3 4 5
    
    Und nein jede Zelle hat nur eine Zahl
     
  12. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    dann brauchst du garnich 2 for schleifen wenn du es nur in einer richtung befüllen willst


    Code:
     intausgabe := intstartwert;
     for i := 0 to intendwert -1 do
     begin
     strgrid1.Cells[0,i]:= IntToStr(intausgabe);
     intausgabe := intausgabe+1;
    
    end;
    sollte eig so laufen^^
    bin mir grade nich 100% sicher ob das stringgrid bei 0 oder bei 1 anfängt aber ich glaube bei 0 oder?
    ansonsten machste aus strgrid1.Cells[0,i]:= IntToStr(intausgabe); einfach ->
    strgrid1.Cells[1,i]:= IntToStr(intausgabe);
     
  13. 4. Oktober 2010
    AW: Delphi Schleifenproblem

    Okay danke -.- ich weiß nicht worans jetzt lag...bei meiner Denkweise.
    Ab und zu gibts bei mir mal Denkblokaden.
     
  14. 5. Oktober 2010
    AW: Delphi Schleifenproblem

    Also hiermit funktioniert jetzt alles wie es soll:
    Code:
     schrittwert := 0;
    
     for i := 0 to strgrid1.colcount - 1 do
     begin
     for j := 0 to strgrid1.rowcount - 1 do
     begin
     if (startwert+schrittwert) <= endwert then
     strgrid1.Cells[j,i] := IntToStr(startwert+schrittwert);
     schrittwert := schrittwert+1;
     end; // Ende der inneren For-Schleife
     end; // Ende der äußeren For-Schleife
    Jedoch wenn ich es in mein mehrdymensionales dynamisches Array einlesen will kommt, dass er auf die Adresse nicht zugreifen kann.
    Das Einlesen lautet wie folgt:
    Code:
    #
    
     for i := 0 to strgrid1.Colcount-1 do
     begin
     for j := 0 to strgrid1.RowCount-1 do
     begin
     StrGridArray[i,j] := StrToInt(strgrid1.Cells[i,j]);
     end;
     end;
    Nur verstehe ich nicht warum? Eigentlich ist es doch genau das selbe wie das Hereinschreiben nur umgekehrt? Indem das, was im StringGrid steht in das Array geschrieben wird?
     
  15. 5. Oktober 2010
    AW: Delphi Schleifenproblem

    Okay habs fertig. Wen es interessiert:

    Unit1:
    Datei #knkbeg92-3660 - DELPHI - Quellcode | sourcepod.com

    Unit2:
    Datei #qlzffz76-3661 - DELPHI - Quellcode | sourcepod.com

    Ist alles noch sehr unausgereift, zumal das StringGrid noch nicht dynamisch angelegt ist, folgt noch, aber das ist ja nur erstmal der Grundbaustein.
     
  16. 5. Oktober 2010
    AW: Delphi Schleifenproblem

    würdest du auch das ganze projekt hochladen?^^ würde mir das gerne ma angucken aber die gui zu den units zu erstellen is iwi ziemlich umständlich^^
     
  17. 5. Oktober 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Delphi Schleifenproblem

    Klar, kein Thema.
    No File | www.xup.in
     
  18. 5. Oktober 2010
    AW: Delphi Schleifenproblem

    k thx
    mal offtopic^^
    wie kommst du darauf sowas zu machen? iwas wegen schule oder privat?
     
  19. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.