AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Schleife wird nicht richtig durchlaufen?!?
Thema durchsuchen
Ansicht
Themen-Optionen

Schleife wird nicht richtig durchlaufen?!?

Ein Thema von plautzer · begonnen am 8. Mär 2005 · letzter Beitrag vom 10. Mär 2005
Antwort Antwort
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#1

Schleife wird nicht richtig durchlaufen?!?

  Alt 8. Mär 2005, 20:10
Hi,

ich will ein Stringgrid abtasten und dabei ein Object auslesen (true oder false). Falls true, dann so er was machen und dann zum nächsten Feld springen. Falls false, dann gleich zur nächsten Zelle.. und das eben bis zum schluß:

Delphi-Quellcode:
for k:=1 to grd-1 do
  for i :=grid[k].FixedCols to grid[k].ColCount-1 do
    for j := grid[k].FixedRows to grid[k].RowCount-1 do
       if zelle.editiert = true then
          begin
          zelle.editiert:=false;
          showmessage(inttostr(zelle.reihe));
          end;

Falls ein Objekt gefunden geworde, das true ist, wird dir Reihe angezeigt. Anscheinend bleibt hört es dort aber auf. Auch wenn mehrer Onjekte = true sind wird immer nur die erste angezeigt. Weiß jemand warum?

Nur zur info, so werden die Objekte an die Zelle im Stringgrid angehängt:

Delphi-Quellcode:
k:=0;
  While K < ibDataset2.RecordCount do
  Begin
   grid[grd].RowCount := grid[grd].RowCount +1;
   grid[grd].Cells[1,k+1]:=ibdataset2.fieldbyname('ablese_nr').AsString;
   grid[grd].Cells[2,k+1]:=ibdataset2.fieldbyname('ablesedatum').AsString;
   AddObjectToGrid(1, k+1, ibdataset2.fieldbyname('ablese_nr').AsInteger, grid[grd]);
   AddObjectToGrid(2, k+1, ibdataset2.fieldbyname('ablese_nr').AsInteger, grid[grd]);
   ibdataset2.Next;
   k:=k+1
  end;
und per keypress/down werden sie objekte (zelle.editiert) = true.

Thx,

Plautzer
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Schleife wird nicht richtig durchlaufen?!?

  Alt 8. Mär 2005, 21:57
Bezogen auf deinen Code:

Was ist Zelle?
Wo ist der Zusammenhang von Zelle zu deinen Schleifen?

Du kannst noch so viele Tabellen, Zeilen und Spalten durchlaufen - Zelle ändert sich ja nie, es wird immer dieselbe behandelt.
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#3

Re: Schleife wird nicht richtig durchlaufen?!?

  Alt 9. Mär 2005, 20:35
Zelle ist mein Object:

Delphi-Quellcode:
Tzelle = class(tobject)
   private
   nr: integer;
   reihe: integer;
   editiert: boolean;
   end;

Jede Zelle im Stringgrid hat diese Object, wird aber individuell verändert (also editiert = true/false).

Der Zusammenhang zwischen Zelle und schleife?

Es wird eben jede Zelle im grid abgetastet und das dazugehörige Tzelle analysiert und ausgewertet/ bearbeitet.

Plautzer
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Schleife wird nicht richtig durchlaufen?!?

  Alt 9. Mär 2005, 22:11
Zitat von plautzer:
Jede Zelle im Stringgrid hat diese Object, wird aber individuell verändert (also editiert = true/false).

Der Zusammenhang zwischen Zelle und schleife?

Es wird eben jede Zelle im grid abgetastet und das dazugehörige Tzelle analysiert und ausgewertet/ bearbeitet.
Solltest du dann nicht besser über TStringGrid.Objects[Spalte,Zeile] auf Zelle zugreifen?
Oder allgemeiner ausgedrückt: Sollten nicht mal irgendwo deine Schleifenvariablen i (Spalte) und j (Zeile) auftauchen, um gezielt eine Zelle im Grid ansprechen zu können?
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#5

Re: Schleife wird nicht richtig durchlaufen?!?

  Alt 10. Mär 2005, 17:54
Hast recht!

Habs jetzt auch rausbekommen...

Danke für den Tipp

Plautzer
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:06 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