IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

evenements Onchanges pour DBRadiogroup


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 82
    Points : 0
    Points
    0
    Par défaut evenements Onchanges pour DBRadiogroup
    Bonjour
    pourquoi ce code sa ne marche pas
    j'ai utilisé ce code sur l'évenement de DBRadiogroup1 'OnChange' mais marche pas
    ce champ contient seulement deux Choix '1' et '2':

    voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.DBRadioGroup1Change(Sender: TObject);
    begin
    table1.edit;
    if table1.fieldvalues['choix_prix']='1' then table1.fieldvalues['Mt']:=500
                                            else table1.fieldvalues['Mt']:=1000;
    table1.Post;
    end;

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,

    C'est normal que cela ne fonctionne pas !

    Lors d'un clic sur le composant Radiogroup1 ce qui revient à modifier le champ sous jacent de votre ensemble de données Table1, celui-ci est déjà passé en mode édition (Table1.State = dsEdit) mais la modification n'est pas encore validée, vos instructions ne font qu'obtenir l'ancienne valeur.

    D'autre part, l'évènement OnChange est également déclenché lors de l'affichage ou du parcours de l'ensemble de données.

    Un code moins inadéquat (mais pas idéal) serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.DBRadioGroup1Change(Sender: TObject);
    begin
      if Table1.State = dsEdit then
      begin
        if DBRadioGroup1.Value = '1' then
          Table1.FieldValues['Mt'] := 500
        else
          Table1.FieldValues['Mt'] := 1000;
      end;
    end;
    Attention, l'ensemble de données reste en mode édition.
    Si vous appelez la procédure Post dans le gestionnaire d'évènement, n'oubliez pas aussi de mettre à jour le champ 'choix_prix'...

    Une dernière chose, étudier le comportement des DbControls serait utile...
    --
    Philippe.
    Philippe.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 82
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Bonjour,

    C'est normal que cela ne fonctionne pas !

    Lors d'un clic sur le composant Radiogroup1 ce qui revient à modifier le champ sous jacent de votre ensemble de données Table1, celui-ci est déjà passé en mode édition (Table1.State = dsEdit) mais la modification n'est pas encore validée, vos instructions ne font qu'obtenir l'ancienne valeur.

    D'autre part, l'évènement OnChange est également déclenché lors de l'affichage ou du parcours de l'ensemble de données.

    Un code moins inadéquat (mais pas idéal) serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.DBRadioGroup1Change(Sender: TObject);
    begin
      if Table1.State = dsEdit then
      begin
        if DBRadioGroup1.Value = '1' then
          Table1.FieldValues['Mt'] := 500
        else
          Table1.FieldValues['Mt'] := 1000;
      end;
    end;
    Attention, l'ensemble de données reste en mode édition.
    Si vous appelez la procédure Post dans le gestionnaire d'évènement, n'oubliez pas aussi de mettre à jour le champ 'choix_prix'...

    Une dernière chose, étudier le comportement des DbControls serait utile...
    --
    Philippe.
    merçi bcp le code est bien marché

Discussions similaires

  1. Equivalent de onChange pour un TextField
    Par gourouman dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 04/09/2006, 00h27
  2. 2 actions sur evenement onchange sur champ Select
    Par falz222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2006, 20h59
  3. Réponses: 3
    Dernier message: 20/02/2006, 11h36
  4. Evenement onChange
    Par NeHuS dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2006, 08h42
  5. Procedure d'evenement OnChange
    Par Alain Dionne dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2004, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo