![]() |
Delphi-Version: 2005
schleifen problem
hallo liebe Delphipraxiscommunity
Ich habe ein Problem mit meiner Schleife Mit dieser Schleife moechte ich vom StringGrid Daten herausholen, diese sollen sich aber nicht in der ListBox widerholen Ich hoffe ihr versteht mich Delphi meldet sich immer mit der Meldung: Listenindex ueberschreitet maximum Ja ist ein Anfaenger problem, aber ich steh grad auf der Leitung hoffe es kann mir jemand helfen
Delphi-Quellcode:
for row := 0 to StringGrid1.RowCount - 1 do
begin repeat if StringGrid1.Cells[0,row]=ListBox1.Items[b] then begin ListBox1.Items.Add(StringGrid1.Cells[0, row]); b:=ListBox1.Count-1; end else b:=b+1; until (b=ListBox1.Count-1); end; |
AW: schleifen problem
Eventuell unterstützt Listbox.Items das Handling von Duplikaten. Einfach auf xxIgnore stellen. Wenn die in TListbox eingefügten TStrings das nicht können, dann kann das die TStringlist. Einfach dort die Duplikate ignorieren lassen und am Ende ein Listbox.Items.AddStrings(Deine_StringList); und fertig.
Bernhard |
AW: schleifen problem
mit welchem Wert kommt b denn in die Schleife?
wann kommt denn die Meldung? Am Beginn, irgendwann in der Mitte oder vielleicht am Ende der Schleife? Gruß K-H |
AW: schleifen problem
Hallo!
Ich glaub auch^ du hast vergessen "b" zu initialisieren.. Prüfen ob ein Eintrag in der ListBox ist kannst du mit..
Delphi-Quellcode:
lg
if ListBox1.Items.IndexOf(String) = -1 then
begin //Existiert noch nicht... end; |
AW: schleifen problem
ne sorry b hab ich initialisier
mit b:=0 faengt er an und ich habs hinbekommen danke fuer die schnelle hilfe hier der fertige Code
Delphi-Quellcode:
for row := 0 to StringGrid1.RowCount - 1 do
begin if ListBox1.Items.IndexOf(StringGrid1.Cells[0,row]) = -1 then ListBox1.Items.Add(StringGrid1.Cells[0, row]); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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