Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Checklistbox.checked macht Probleme
Kralle - Sa 23.07.11 15:01
Titel: Checklistbox.checked macht Probleme
Moin,
da bin ich schon wieder.
Durch das anwählen oder abwählen eines Eintrages in einer Checklisbox, wird der Inhalt der Box als solches verändert.
Soweit so gut. Das Ändern des Inhaltes im OnCkliCHeck-Ereignis funktioniert auch, aber obwohl der Haken weg ist und auch die Änderung durch geführt wird, bleibt eine Abfrage
Delphi-Quelltext
1:
| oldArray[I,2]:= BoolToStr(CLB_Header.checked[I]); |
auf True.
Auch beim Debug, verändert sich der Status nicht, obwohl die Visuelle-Komponente eine Änderung zeigt.
In den Eigenschaften der Komponente finde ich auch keine Einstellung die offensichtlich die Statusänderung verhindert.
Ertelle ich eine kleine Testanwendung um diesem Phänomen auf die Spur zu kommen, so läuft in der alles normal (auch im Debug).
Also, muss es irgendeine Einstellung geben, die in meinem Projekt verhindert, das der Status richtig ausgewertet wird.
Irgendwelche Ideen?
Gruß Heiko
Xion - Sa 23.07.11 15:36
Kralle hat folgendes geschrieben : |
aber obwohl der Haken weg ist und auch die Änderung durch geführt wird, bleibt eine Abfrage
Delphi-Quelltext 1:
| oldArray[I,2]:= BoolToStr(CLB_Header.checked[I]); |
auf True. |
Mal davon abgesehen dass er -1 statt true zurückgibt funktionierts bei mir so. Kann es evtl was damit zu tun haben, dass du ein 2D-Array hast? Greifst du da irgendwie falsch zu?
Kralle hat folgendes geschrieben : |
Auch beim Debug, verändert sich der Status nicht, obwohl die Visuelle-Komponente eine Änderung zeigt. |
Ist es auch die richtige CheckListBox? Im andren Thread hattest du CLB_middle.
jaenicke - Sa 23.07.11 16:55
Warum hast du denn ein array of string? Ein array of Boolean wäre wohl besser geeignet...
Kralle - Sa 23.07.11 17:49
Moin,
Xion hat folgendes geschrieben : |
Mal davon abgesehen dass er -1 statt true zurückgibt funktionierts bei mir so. Kann es evtl was damit zu tun haben, dass du ein 2D-Array hast? Greifst du da irgendwie falsch zu? |
Die Daten landen schon falsch im Array, wie man im Debug sehen kann.
Zitat: |
Ist es auch die richtige CheckListBox? Im andren Thread hattest du CLB_middle. |
Gibt beide.
Gruß Heiko
Nachtrag: Die Anzeige im Debug hat Mist angezeigt.
Nachdem ich die Zuüberwachenden Variablen gelöscht und neu angelegt hatte, bekam ich auch den Status richtig angezeigt.
Vielleicht mag es TDP wenn man Windows den den Ruhezustand versetzt.
Jetzt, muß ich nur noch im Code den Fehler finden, was mit einem funktionierenden Debug einfacher ist :-)
---
Moderiert von
Narses: Beiträge zusammengefasst---
Moin,
jaenicke hat folgendes geschrieben : |
Warum hast du denn ein array of string? Ein array of Boolean wäre wohl besser geeignet... |
Es ist ein StringArray, weil auch Strings gespeichert werden.
Das Speichern der Bool-Info habe ich nur noch nachträglich mit rein genommen.
Gruß Heiko
jaenicke - Sa 23.07.11 18:38
Kralle hat folgendes geschrieben : |
Nachtrag: Die Anzeige im Debug hat Mist angezeigt. |
Wenn du in einer Schleife bist, weiß der Debugger nicht unbedingt den korrekten Wert der Schleifenvariable, wenn die Optimierung in den Projektoptionen eingeschaltet ist (Standard = an). ;-)
Kralle - Sa 23.07.11 18:52
Moin,
jaenicke hat folgendes geschrieben : |
Wenn du in einer Schleife bist, weiß der Debugger nicht unbedingt den korrekten Wert der Schleifenvariable, wenn die Optimierung in den Projektoptionen eingeschaltet ist (Standard = an). ;-) |
Da bin ich einmal drauf reingefallen, seit dem schalte ich die Optimierung bis zu Schluß ab.
Aber, trotzdem verhält der Debug-Modus wie ein Blinker - mal stimmt die Anzeige und mal nicht ;-(
Gruß Heiko
Kralle - Mi 27.07.11 12:14
Moin,
das Problem war nicht der Debugger, sondern meine "IF ... =" true Abfragen.
Gruß Heiko
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!