Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleife wird nicht richtig durchlaufen?!? (https://www.delphipraxis.net/41796-schleife-wird-nicht-richtig-durchlaufen.html)

plautzer 8. Mär 2005 20:10


Schleife wird nicht richtig durchlaufen?!?
 
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

IngoD7 8. Mär 2005 21:57

Re: Schleife wird nicht richtig durchlaufen?!?
 
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.

plautzer 9. Mär 2005 20:35

Re: Schleife wird nicht richtig durchlaufen?!?
 
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

IngoD7 9. Mär 2005 22:11

Re: Schleife wird nicht richtig durchlaufen?!?
 
Zitat:

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? :wink:

plautzer 10. Mär 2005 17:54

Re: Schleife wird nicht richtig durchlaufen?!?
 
Hast recht!

Habs jetzt auch rausbekommen... :)

Danke für den Tipp :thumb:

Plautzer


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