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

Langage Delphi Discussion :

length dans un Onchange


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut length dans un Onchange
    Salut à tous,

    J'ai 14 Edit sur une fiche. La dernière Edit doit faire la somme des montants saisie dans les autres Edit. Je veux faire de tel sorte qu'en saisissant un chiffre dans n'importe qu'elle Edit, que la somme s'affiche automatiquement dans un Edit qui accueillera le montant total.
    Donc en somme je veux écrire mon code dans le OnChange de chaque Edit. J'ai d'abord fait un test avec 2 Edit mais je rencontre des problèmes. Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.Edit4Change(Sender: TObject);
    var a, b, s : integer;
    begin
      if length(Edit4.text) > 0 then
         a := StrToInt(Edit4.text)
      Else a :=0;
      if length(Edit44.text) > 0 then
           b := StrToInt(Edit44.text)
      Else b :=0;
      s := a + b;
      Edit57.Text := IntToStr(s);
    end;
    A l'exécution, il y'a un EConvertError avec le message Edit44 n'est pas une valeur entière correcte. Merci de me guider.

  2. #2
    Aos
    Aos est déconnecté
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut
    T'es bien sur que ton edit44 ne contient pas autre choses que des chiffres?
    C'est a dire, pas de virgule, rien d'autre que des chiffres de 0 à 9.

    et pas de chaine vide non plus

  3. #3
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 942
    Par défaut
    1/ La procedure s'appelle Edit4OnChange, et tu y traites Edit44.

    2/ Si tu envisages de faire la même chose pour tous les TEdit intermédiaires, bon courage !!!!
    Je verrais plutôt une procédure "banalisée" sur laquelle tous les OnChange des TEdit pointent, et qui commencerait comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Edit4Change(Sender: TObject);
    var a, b, s : integer;
    begin
      if length((Sender as TEdit).text) > 0 then
         a := StrToInt((Sender as TEdit))
      Else a :=0;
    etc....
    et qui se terminerait en faisant le total à l'aide d'une boucle utilisant FindComponent

  4. #4
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    Salut,

    Pour le code de qi130 il y'a Erreur : Types incompatibles : 'String' et 'TEdit'.
    Tu fais cas d'une boucle utilisant FindComponent; peux-tu me donner aussi un exemple.
    Pour le StrToIntDef de sat83, cela a résolu le problème de l'exception si la chaine de caractère contient autre chose qu'un nombre correct.
    Merci à vous tous.

  5. #5
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Citation Envoyé par sondo Voir le message
    peux-tu me donner aussi un exemple. Merci d'avance.
    En supposant que tes TEdit se nomme Edit1 à Edit14:
    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
     
    procedure TForm1.EditChange(Sender: TObject);
    const
      NB_EDIT = 14;
    var
      Compo: TEdit;
      I, Somme, Val: Integer;
    begin
      Somme := 0;
      for I := 1 to NB_EDIT do
      begin
        Compo := TEdit(FindComponent('Edit' + IntToStr(I)));
        TryStrToInt(Compo.Text, Val);
        Somme := Somme + Val;
      end;
      EditSomme.Text := IntToStr(Somme);
    end;
    Cette procédure étant affectée sur le OnChange de tes 14 Tedit.

    @+ Claudius

  6. #6
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    Salut Cl@udius,

    J'utilise Delphi 5 qui ne reconnait pas TryStrToInt. J'ai utilisé StrToIntDef à la place, mais le calcul n'est pas fait. Quand je saisie dans des chiffres dans les Edit il y'a un Zero qui s'affiche dans EditSomme.Text.

  7. #7
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    En supposant que tes TEdit se nomme Edit1 à Edit14:
    Donc oublies la constante, et remplace la boucle par:
    @+

  8. #8
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Regarde du coté de StrToIntDef ou TryStrToInt qui te permetront d'éviter une exception si la chaine de caractère contient autre chose qu'un nombre correct.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. variable dans un onchange
    Par kaking dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/05/2009, 17h36
  2. Exécuter du code PHP dans un onchange javascript
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/01/2009, 17h08
  3. Deux actions dans un onchange ?
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/01/2009, 10h17
  4. addition dans un "onchange"
    Par carusier dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/03/2007, 17h03
  5. [Javascript] php dans un onchange
    Par klimero dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/04/2006, 10h44

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