Einzelnen Beitrag anzeigen

d7user1
(Gast)

n/a Beiträge
 
#1

Code wird nicht ausgeführt - warum? (erledigt, danke an Popov)

  Alt 19. Mär 2014, 18:55
hallo. ich habe momentan ein ganz seltsames problem. so etwas habe ich noch nie erlebt.

ich habe eine form mit einer listview. die items sind mit checkboxen versehen.
parallel gibt es eine stringlist in welcher die selben "werte" zu finden sind.

in einem ListView1MouseUp() ist nun folgende schleife enthalten:
Delphi-Quellcode:
Item := ListView1.GetItemAt(X, Y);
// ...
for i := 0 to WerteListe.Count - 1 do
      begin
       if ItemGefunden(Item, i) then begin
        break;
       end;
      end;
der funktion ItemGefunden wird "i" übergeben und in der funnktion gibt es dann soetwas wie {* ... *}Zeile := WerteListe.Strings[i]; in der weteren ausfhrung wird einfach nur geguckt ob dieser wert "Zeile" ein "_" als erstes zeichen hat oder nicht.
wenn ja, wird es entfernt anderenfalls wird es hinzugefügt:

Delphi-Quellcode:
if WerteListe.Strings[i][1] = '_then
      WerteListe.Strings[i] := Copy(WerteListe.Strings[i], 2, Length(WerteListe.Strings[i]))
     else
      WerteListe.Strings[i] := '_' + WerteListe.Strings[i];
und genau da ist das seltsame problem:

wenn ich alles so belasse wird der code niemals ausgeführt bzw. die liste WerteListe wird niemals geupdatet.
wenn ich aber vor dem if ein showmessage(); setze wird die if-bedingung abgerabritet und die liste WerteListe ändert sich.

aber ohne showmessage() funktioniert es nicht, warum?
ich kann showmessage() auch in ListView1MouseUp() unter die for-schleife packen, dann funktioniert es auch.
aber ohne showmessage() ändert sich nichts.

ich habe schon daran gedacht dass das vielleicht etwas mit dem abarbeten der messages zu tun haben könnte, aber da kenne ich mich nicht aus.

Geändert von d7user1 (19. Mär 2014 um 22:19 Uhr)
  Mit Zitat antworten Zitat