![]() |
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:
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?
for i := 0 to listview.items.count -1 do
memo1.lines.add(listview.Items.Item[i].Caption); Danke für eure Hilfe MfG Stefan |
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('');
|
Re: Schleifenproblem
danke! funktioniert perfekt. da hätte ich eigentlich auch selber drauf kommen können...
|
Re: Schleifenproblem
Solly,
Code:
Hoff man verstehts :?:
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; |
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.. |
Re: Schleifenproblem
Solly,
tut ma leid, was zimmlich verbugt. Hier die funktionierende Version:
Code:
Oder (ist kürzer):
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;
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 13:08 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-2025 by Thomas Breitkreuz