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
Rejoignez-nous