Einzelnen Beitrag anzeigen

Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#1

Alle Listboxeinträge werden markiert...warum??

  Alt 19. Nov 2015, 14:45
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:
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;
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.

Was kann das für eine ursache haben?

Vielen Dank für Hinweise.
  Mit Zitat antworten Zitat