Das Löschen der geschweiften Klammern erzeugt auch noch einen Stack Überlauf.
Rate mal, welches Ereignis ausgelöst wird, wenn sich der Wert einer CheckBox ändert? Egal ob durch den Benutzer oder vom Programm.
OnClick
Aber das hätte man durch Debuggen rausbekommen können (das Zuweisen
DBCheckBox1.Checked := True;
im Einzelschritt durchgehen),
bzw. durch einen Blick in den Stacktrace, nach der
Exception. (wer, wo und warum die Funktionen aufrief)
Die CheckBox ändert selber ihren Status, wenn man sie anklickt, also du brauchst das Checked hier eigentlich nicht zu manipulieren.
Delphi-Quellcode:
if DBCheckBox1.Checked then // if DBCheckBox1.Checked = True then
DBCheckBox1.Checked := False;
if not DBCheckBox1.Checked then // if DBCheckBox1.Checked = False then
DBCheckBox1.Checked := True;
Sowas ist natürlich auch "sinnlos", denn nach dem ersten IF ist Checked immer False (entweder es war schon False und blieb unverändert, oder es wurde auf False geändert)
und beim zweiten IF wird es dadurch natürlich gleich wieder auf True gesetzt, womit es am Ende immer True wäre.
Delphi-Quellcode:
if DBCheckBox1.Checked then
DBCheckBox1.Checked := False
else
DBCheckBox1.Checked := True;
Aber, wie gesagt, brauchst du an dem Checked, in der
OnChangeOnClick-Methode, eigentlich garnicht dran rumspielen, da es bereits von der
VCL umgeschaltet wird.
Zitat:
Update Tabelle set FELD
"FELD" ist ein Feld in der Tabelle "Tabelle"?
Auf was soll FELD eigentlich gesetzt werden?
Und welcher Datensatz soll eigentlich geändert werden? (bei dir alle Datensätze der Tabelle)
Beispiel:
UPDATE tabelle SET feld = neuerWert WHERE bedingung
Tipp: Besser nicht mit False und vorallem nicht mit True vergleichen.
Außerdem ist das nicht nötig, da der Boolean für's IF eh schon vorhanden ist.
Delphi-Quellcode:
if DBCheckBox1.Checked = True then
if DBCheckBox1.Checked = False then
if DBCheckBox1.Checked then
if not DBCheckBox1.Checked then