adjena
Messages postés41Date d'inscriptionvendredi 7 mai 2004StatutMembreDernière intervention 4 juin 2007
-
25 août 2006 à 10:36
retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 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.
retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 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.
retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 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 ?
adjena
Messages postés41Date d'inscriptionvendredi 7 mai 2004StatutMembreDerniè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;
adjena
Messages postés41Date d'inscriptionvendredi 7 mai 2004StatutMembreDerniè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.