AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Alle Listboxeinträge werden markiert...warum??

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

Ein Thema von Sugar · begonnen am 19. Nov 2015 · letzter Beitrag vom 19. Nov 2015
Antwort Antwort
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
nahpets
(Gast)

n/a Beiträge
 
#2

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

  Alt 19. Nov 2015, 15:00
Was passiert denn hier, wenn das Item nicht gefunden wird?
Delphi-Quellcode:
  ix:= Listbox1.Items.IndexOf(Item);
    ListBox1.Selected[ix]:=true;
Dann müsste ix doch -1 sein.
Was wird denn ausgewählt, wenn ListBox1.Selected[-1]:=true; gesetzt wird? (geht das überhaupt?)

Wie wäre es denn mit diesem hier?
Delphi-Quellcode:
  ix:= Listbox1.Items.IndexOf(Item);
   if ix <> - 1 then ListBox1.Selected[ix]:=true;
Was passiert denn mit den Einträgen, die vor dem Aufruf der Prozedur bereits markiert sind?

Korrekterweise müsste doch die Prozedur bei mehrfachem Aufruf mit unterschiedlichen Werten additiv sein.

Wäre es eventuell hilfreich, vorher alle bestehenden Markierungen aufzuheben?

Geändert von nahpets (19. Nov 2015 um 15:22 Uhr) Grund: immer diese Schreibfehler :-(
  Mit Zitat antworten Zitat
Sugar

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

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

  Alt 19. Nov 2015, 15:20
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
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#4

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

  Alt 19. Nov 2015, 16:50
Sorry, vergiss diesen Post, ich war im falschen Thread
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo

Geändert von Captnemo (19. Nov 2015 um 16:54 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 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