Bonjour
J'utilise un checkbox avec les composants Interbase de Borland, le checkbox ecrit les valeurs dans la table mais à la lecture il n'affiche rien
Une idée ?
Bonjour
J'utilise un checkbox avec les composants Interbase de Borland, le checkbox ecrit les valeurs dans la table mais à la lecture il n'affiche rien
Une idée ?
1) Vérifier si le champ lié au DBCheckBox est null. Si c'est le cas, le composant doit être informé de la façon de représenter une valeur null (grisé par défaut de mémoire).
2) Vérifier si la propriété AllowGrayed du DBCheckBox est à True. Dans ce cas, la valeur grisée est utilisée pour représenter la valeur null.
Cdlt
Verifié tout est ok
Champs n'est pas null
AllowGrayed du DBCheckBox est à True
Le champ lié au DBCheckbox est bien de type booléen ?
Y'a pas ce type avec Firebird
La réponse à ton problème est surement dans la méthode suivante :
Par déduction, ta case est grisée soit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 function TDBCheckBox.GetFieldState: TCheckBoxState; var Text: string; begin if FDatalink.Field <> nil then if FDataLink.Field.IsNull then Result := cbGrayed else if FDataLink.Field.DataType = ftBoolean then if FDataLink.Field.AsBoolean then Result := cbChecked else Result := cbUnchecked else begin Result := cbGrayed; Text := FDataLink.Field.Text; if ValueMatch(FValueCheck, Text) then Result := cbChecked else if ValueMatch(FValueUncheck, Text) then Result := cbUnchecked; end else Result := cbUnchecked; end;
1) Ton champ est null
2) Ton champ n'est pas du type booléen et les valeurs stockées dans ton champ ne correspondent pas aux valeurs des propriétés ValueChecked, ValueUnchecked du TDBCheckBox ...
Par exemple
Si ton champ est de type entier, indique 1 pour ValueChecked et 0 pour ValueUnchecked
Si ton champ est de type chaîne, indique "vrai" pour ValueChecked et "faux" pour ValueUnchecked.
Bien sûr ce ne sont que des conventions que je donne à titre d'exemple, à toi de choisir quelle est la valeur pour cocher ou pour décocher.
Merci, On peut contourner ça avec ses propres procédures & fonctions , le problème que depuis mon passage sous firebird, je ne fais que reprogrammer avec propres fonction, ce ma tracasse énormément vu le temps que ça prend.
Merci en tout cas.
Partager