![]() |
While-Schleife für Auswahl
Sers ihr da draussen und so,
ich hab n kleines Problem. Ich hab n Prog geschrieben, was soweit gut funktioniert. Derzeit wähle ich in einem Listview meine Einträge mit einer "for-Schleife" aus, das sieht wie folgt aus:
Delphi-Quellcode:
Soweit so gut, wenn ich jetzt aber über ein Edit nach Einträgen suche, kommt es zu dem Problem, dass er zwar nur noch die gewünschten Einträge anzeigt, aber wenn ich einen Eintrag auswähle und ihn dann editieren möchte, dann kommt es zu dem Problem, dass er einen falschen Eintrag nimmt, da der lauf (bei mir heisst er so) eine andere Stelle auswählt, als die, die im Listview angezeigt wird. Siehe dazu das Bild:
lauf:=anfang;
for i:=0 to Listview1.ItemIndex do begin lauf:=lauf.nachfolger; end; ![]() Ich habe mich deswegen entschieden das ganze über eine While-Schleife zu lösen. Das sieht für eine ListBOX wie folgt aus:
Delphi-Quellcode:
Ich weiss, dass es mit dieser While-Schleife funktioniert, aber wenn ich dies nun auf einen ListVIEW anwenden will, weiss ich nicht genau wie es geht.....
while (lauf.Daten.n+', '+lauf.Daten.v <> listbox1.Items.Strings[listbox1.ItemIndex]) and
(lauf.Daten.v+', '+lauf.Daten.n <> Listbox1.Items.Strings[listbox1.ItemIndex]) do begin lauf:=lauf.Nachfolger; end; Any help? |
Re: While-Schleife für Auswahl
wo sind die ganzen profi's, die schon 13000 beiträge haben, aber hierzu nichts wissen? :D
|
Re: While-Schleife für Auswahl
Hai arest,
abgesehen davon das es Samstag abend ist und nicht jeder auf deine Frage wartet.... In der Delphi-PRAXiS sind "pushings" in weniger als 24 Stunden nicht erwünscht. Danke. |
Re: While-Schleife für Auswahl
Hallo arest,
auf dem Bild sehe ich keine ListView und in deinem gezeigten Code wird dein Problem nicht deutlich. Also muss ich raten: Du verwaltest deine Daten in einer verketteten Liste und greifst über die Position auf deren Einträge zu. Nach dem Filtern verwendest du die Position des Treffers für den Zugriff auf die ungefilterte Liste, was natürlich nicht funktionieren kann. Für den Zugriff musst du ein eindeutiges Merkmal verwenden. Eine fortlaufend vergebene Nummer, die sich nie ändert, wäre so ein Merkmal. Du musst diese Nummer nicht im Grid anzeigen, da sie ja nur für die Zugriffe gebraucht wird. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 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