Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#65

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 1. Sep 2014, 10:07
Delphi-Quellcode:
procedure TForm1.DBCheckBox1Click(Sender: TObject);
begin
  {
  if DBCheckBox1.Checked then
    DBCheckBox1.Caption := DBCheckBox1.ValueChecked
  else
    DBCheckBox1.Caption := DBCheckBox1.ValueUnChecked;
    }


 DBGrid1.Columns[0].ReadOnly := False;

  if DBCheckBox1.Checked then
    begin
     DBCheckBox1.Checked := False;
    end ;

end;
Es wurde schon ausführlich erklärt, dass die DBCheckBox in dieser Methode nicht gesetzt werden darf.
So, wie der Source jetzt ist, wird die DBCheckBox immer False sein.

Nochmal:
Wenn DBCheckBox.Checked in dieser Methode gesetzt wird, wird die Methode automatisch wieder auf gerufen.

Ergebnis-Prüfung:
Fall 1: Die Box ist nicht gechecked.
- Anwender setzt die Box auf Checked.
- Die Methode wird dadurch aufgerufen.
- Methode setzt die Box auf nicht gechecked und ruft sie ohne Auswirkung nochmal auf.
Ergebnis: Die Box ist nicht gechecked.

Fall 2: Die Box ist gechecked.
- Anwender setzt die Box auf nicht Checked.
- Die Methode wird dadurch aufgerufen.
- Es passiert aber nichts weiter (außer ReadOnly-Einstellung).
Ergebnis: Die Box ist nicht gechecked.

Beide Fälle führen also dazu, dass DBCheckBox.Checked immer False sein wird, sobald der Anwender diese anklickt.
Du kannst die Methode komplett entfernen. Ich sehe auch für das ReadOnly := false keine Notwendigkeit.
Peter
  Mit Zitat antworten Zitat