GESTION COMPOSANT DBGRID

Résolu
adjena
Messages postés
41
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
4 juin 2007
- 25 août 2006 à 10:36
retaks666
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007
- 24 oct. 2006 à 10:41
Bonjour,
Quelqu'n pourrait-il m'aider a gerer un composant dbgrid pour faire des controle sur les cellule et ne pas pouvoir sortir de la cellule tant que la donnée est erronée.
Exemple j'ai une cellule de type date la personne saisie une date erroné j'ai un super plantage delphi alors que je voudrais trappé le message et ne pas laisser sortir l'utilisateur de la cellule.
2 eme exemple je voudrais toujours à partir d'un DBGRID que l'utilisateur ne puisse faire une selection que dans une liste de valeur prédefinie mais autrement que par la propriété Picklist de la colonne du DBGRID car l'utilisateur a bien une liste de valeur mais il peut saisir autre chose.
Merci pour votre aide.

7 réponses

retaks666
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

24 oct. 2006 à 10:41
Je connais pas trop les tables, mais apparement tu devrais pouvoir te débrouiller avec les évènements before/after edit/insert , je sais pas trop quand ils se déclenchent par contre mais en cherchant un peu dans les évènments de ta table ou de ton datasource tu devrais trouver je penses.
3
retaks666
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

13 oct. 2006 à 12:33
Tu peux essayer de controler la valeur saisie lors des évènements OndataUpdate et OnDataChange du datasource associé a ton DBGrid je penses.
Pour ta deuxième question, pourquoi ne pas utiliser un combobox que tu afficherai ou créérai par dessus la cellule lorsque que tu en a besoin ?
0
adjena
Messages postés
41
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
4 juin 2007

13 oct. 2006 à 15:02
Merci pour cette réponse mais pourrais-tu me donner plus de précision concernant le code à écrire car j'ai fais le test avec :

procedure TFrmPrinc.DtSrcAc_GdtDataChange(Sender: TObject; Field: TField);
begin
 showmessage('different');
 if ((dtmdl.tblac_gdtTRAITE.Value<>'O') and (dtmdl.tblac_gdtTRAITE.Value<>'N')
 and (dtmdl.tblac_gdtTRAITE.Value<>'S')) THEN
  dtmdl.tblac_gdtTRAITE.Value:='N';
end;

et çà plante ...

Cordialement
0
retaks666
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

23 oct. 2006 à 17:36
Peux-tu donner le message d'erreur, et indiquer à quoi corresponde les objets ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adjena
Messages postés
41
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
4 juin 2007

24 oct. 2006 à 09:03
Voici le message que j'ai :
Le projet xxxx a provoque une classe d'exception eDataBaseError avec le message 'tblac_gdt: l'ensembvle de donnee n'est pa en mode edition ou insertion'. Processus stoppé utilise pas a pas ou executer pour continuer.
0
retaks666
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

24 oct. 2006 à 09:32
c'est quoi comme composant tblac_gdt ? Sinon, tu peux mettre une condition genre if dataset = dsinsert or dataset = dsedit ...
0
adjena
Messages postés
41
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
4 juin 2007

24 oct. 2006 à 09:49
C'est un composant table qui pointe sur un fichier dbf
0