Entwickler-Ecke

Datenbanken - aktivierte DBCheckbox grau (mehrere Einträge in ValueChecked


inkoknito - Di 04.08.09 12:58
Titel: aktivierte DBCheckbox grau (mehrere Einträge in ValueChecked
Hallo,

ich habe auf meiner Form eine Checkbox, der ich im Quellcode zwei Werte zuweise, bei denen sie als "Checked" markiert sein soll.


Delphi-Quelltext
1:
DBCheckBox_ARCHIV.ValueChecked := '0;1';                    


Wenn nun diese Werte in dem entsprechenden Datenbankfeld zu finden sind, ist die Checkbox richtigerweise auch markiert. Allerdings ist sie grau hinterlegt. Ich hätt's gern ganz normal weiß, wie bei allen anderen Checkboxen mit nur einem Wert auch. Ihr könnt mir sicher weiterhelfen.

Vielen Dank schonmal!

Gruß, Jana

EDIT: Mir ist gerade aufgefallen, sobald ich diese Checkbox einmal geändert habe, wird es anschließend auch bei anderen Datensätzen immer weiß angezeigt. Ist also nur ein Problem vor der ersten Nutzung.


Delete - Di 04.08.09 16:57

Hallo,

Du musst einem neuen Datensatz einen Defaultwert geben (true/false) (initialisieren), z.B. bei onNewRecord der abgeleiteten TDataSet-Komponente. Entsprechend handeln, wenn ein Datensatz per SQL hinzugefügt wird.

z.B: so

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure MyDataSetOnNewRecord(Dataset: TDataSet);
begin
  tblMyDataMyBooleanField.Value := False;  // oder true

  //oder so
  tblMyData.FieldByName('MyBooleanField').AsBoolean := False;
end;


Somit ist die DBCheckBox nicht mehr ausgegraut

Gruß