Alle Listboxeinträge werden markiert...warum??
Hallo Forum,
ich kriege hier gerade Augen bis zum Bildschirm... Ich lese aus einer Ini-Datei einen String und gebe ihn an die unten gezeiget Routine weiter.
Code:
Die Listbox wird im Vorfeld gefüllt. Markiert werden sollen nur die relevanten Einträge,die in der Variable AP übergeben werden. Komischwerweise werden beim erreichen des Endes der Schleife ALLE Einträge markiert, noch bevor die Prozedur verlassen wird.
procedure TForm1.MarkiereAps(Ap: string);
var I, C, P, {Position des Trennzeichens im Ini-Eintrag} Ix {Item Index der Listbox}: Integer; Item: string; begin {z.B. AP= AP-1234;AP-3344;AP-8765} {Trennzeichen im String zählen} C := FindStrAndCount(AP, ';'); For I := 0 to C do Begin {String zerlegen ...} P := pos(';', AP); { Item ist der Listboxeintrag der markiert werden soll} Item := copy(ap, 1, P-1 ); { String kürzen } AP := copy(ap,P+1,length(AP)); {Index des Eintrags ermitteln und Eintrag markieren} ix:= Listbox1.Items.IndexOf(Item); ListBox1.Selected[ix]:=true; //Application.ProcessMessages; end; end; Was kann das für eine ursache haben? Vielen Dank für Hinweise. |
AW: Alle Listboxeinträge werden markiert...warum??
Was passiert denn hier, wenn das Item nicht gefunden wird?
Delphi-Quellcode:
Dann müsste ix doch -1 sein.
ix:= Listbox1.Items.IndexOf(Item);
ListBox1.Selected[ix]:=true; Was wird denn ausgewählt, wenn
Delphi-Quellcode:
gesetzt wird? (geht das überhaupt?)
ListBox1.Selected[-1]:=true;
Wie wäre es denn mit diesem hier?
Delphi-Quellcode:
Was passiert denn mit den Einträgen, die vor dem Aufruf der Prozedur bereits markiert sind?
ix:= Listbox1.Items.IndexOf(Item);
if ix <> - 1 then ListBox1.Selected[ix]:=true; Korrekterweise müsste doch die Prozedur bei mehrfachem Aufruf mit unterschiedlichen Werten additiv sein. Wäre es eventuell hilfreich, vorher alle bestehenden Markierungen aufzuheben? |
AW: Alle Listboxeinträge werden markiert...warum??
Danke nahpets,
Ich bin noch in der Testphase, es ist derzeit unmöglich einen nicht vorhandenen Eintrag zu haben. Aber irgendwie passt was mit dem String nicht... Dein Hinweis hat mich ein Stück weiter gebracht. Ich melde mich mal wenn ich das Problem gelöst habe. Bis später und herzlichen Dank |
AW: Alle Listboxeinträge werden markiert...warum??
Sorry, vergiss diesen Post, ich war im falschen Thread ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 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