Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleifenproblem (https://www.delphipraxis.net/31344-schleifenproblem.html)

theNeo 7. Okt 2004 18:11


Schleifenproblem
 
Hallo!

Ich will aus einem Listview den gesamten Inhalt auslesen und in einem Memofeld bearbeitet wieder einfügen. Dazu habe ich eine For - Schleife die folgendermaßen aussieht:

Delphi-Quellcode:
for i := 0 to listview.items.count -1 do
memo1.lines.add(listview.Items.Item[i].Caption);
das Problem ist jetzt, das alle Listview- Items nacheinander eingefügt werden, ich will aber immer 5 (soll später einstellbar sein) Items nacheinander eingefügt haben und dann nen Zeilenumbruch. Hab schon verschiedenes ausprobiert und bin noch nicht darauf gekommen, ich denke ich brauche eine 2. Schleife oder?

Danke für eure Hilfe

MfG Stefan

Matze 7. Okt 2004 18:15

Re: Schleifenproblem
 
:hi: Herzlich wollkommen in der DP :party:

Gib doch Folgendes in die for-Schleife:
Delphi-Quellcode:
if i mod 5 = 0 then Memo1.Lines.Add('');

theNeo 7. Okt 2004 18:22

Re: Schleifenproblem
 
danke! funktioniert perfekt. da hätte ich eigentlich auch selber drauf kommen können...

Fourcorner 7. Okt 2004 18:26

Re: Schleifenproblem
 
Solly,

Code:
var N:integer;
var TempN:integer;,
var Text:String

while N > listview.items.count Do
begin
  tempN := n-1;
  text := '';
  while tempN <> n+5 Do
  begin
    tempN := tempN+1;
    if tempN > listview.items.count then
    begin
      memo.lines.add(text);
      exit;
    //
    text :=text+listview.items.item[tempn].caption;
  end;
  memo.lines.add(text);
  N := tempN;
end;
Hoff man verstehts :?:

theNeo 7. Okt 2004 20:17

Re: Schleifenproblem
 
mir ist gerade aufgefallen, das ich die zeilen nicht untereinander brauch, sondern nebeneinander, also fortlaufend.also immer 5 items aus listview und dann kommt der zeilenumbruch. wie kann ich das am einfachstten lösen?

@Fourcorner

hab deinen Quellcode mal probiert, aber dann wird in dem memo garnix ausgegeben, finde aber auch den grund faür nicht..

Fourcorner 8. Okt 2004 20:24

Re: Schleifenproblem
 
Solly,

tut ma leid, was zimmlich verbugt. Hier die funktionierende Version:

Code:
procedure TForm1.Button1Click(Sender: TObject);
var N:integer;
var TempN:integer;
var Text:String;
begin
  N := 0;
  while N < listview1.items.count Do
  begin
    tempN := n-1;
    text := '';
    while tempN <> n+4 Do
    begin
      tempN := tempN+1;
      if tempN = listview1.items.count then
      begin
        memo1.lines.add(text);
        exit;
      end;
      text :=text+listview1.items.item[tempn].caption;
    end;
    memo1.lines.add(text);
    N := tempN+1;
  end;
end;
Oder (ist kürzer):

Code:
var Text:String;
var N:integer;
begin
  text := '';
  For N := 1 to listview1.items.count Do
  begin
    text := text+listview1.Items.Item[n-1].Caption;
    if (N Mod 5 = 0)and(n <> 0) then
    begin
      memo1.Lines.Add(text);
      text := '';
    end;
  end;
  if text <> '' then
    memo1.Lines.Add(text);
  //end;

end;


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