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 :

pb de calcul


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut pb de calcul
    salut a tous,


    J'ai un petit probleme de calcul.

    J'ai un Tedit dans lequel l'utilisateur va saisir un nombres.
    Un autre Tedit qui possede deja un monbres (c'est le total)

    les 2 Tedit sont en relation avec une base de données


    J'aimerai que si l'utilisateur saisisse en nombre qu'il soit deduit du total (là pas de probleme pour le faire) mais j'aimerai que si l'utilisateur saissi un autre chiffre que l'ancien total s'en trouve deduit.

    ex : total = 30

    saisi = 10 donc le total deviens 20
    saisi = 2 donc le total deviens 20 - 2

    ect....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    billet.FieldByName('CinemaPris').Value := CinemaPrisEdit.text;
    sommecine.caption :=InttoStr(30-strToInt(CinemaPrisEdit.Text));
    billet.FieldByName('CinemaRestant').Value := CinemaRestEdit.text;
    Merci pour votre aide n et j'espere ne pas avoir mis ce post dans la mauvaise rubrique si tel est le cas je m'excuse aupres des admins

  2. #2
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Bonsoir,

    tu dis que les champs edit sont reliés à ta base.
    Il te faut donc mettre à jour la table ou sont stockées les champs.

    Sinon, il te faut passer par une variable intermédiaire pour stocker la valeur issue de la première soustraction.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    salut,


    J'y ai bien pensé mais , j'avoue que je suis legerement perdu et je ne sais pas trop comment m'y prendre.
    J'ai quelque probleme avec les IntToStr et StrToInt

    @+

  4. #4
    Membre confirmé
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Points : 647
    Points
    647
    Par défaut IntToStr ?
    Bonjour.

    Je ne comprends pas bien ton problème, mais apparement cela
    concerne les fonctions StrToInt et IntToStr. Je te donne deux code
    en espérent t'aider.

    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
     
    {-------------------------------------------------------------------}
    {       Indique si une chaine de caractères représente une valeur   }
    {       entière valide.                                             }
    {-------------------------------------------------------------------}
    Function ChaineEntierValide(Chn : String) : Boolean;
    Var
      I  : Integer;
    Begin
       Result:=False;
       If (Length(Chn) = 0) Or (Chn = '-') Then Exit;
       For I:=1 To Length(Chn) Do
        If Not (Chn[I] In['-','0'..'9']) Then Exit;
       Result:=True;
    End;
    Tu l'utilise ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If ChaineEntierValide(EditPrix.Text) Then Prix := StrToInt(EditPrix.Text);

    Tu peux empecher la saisie de tout caractère qui ne représente pas un
    chifrre.

    Dans l'événement OnKeyPressed tu écrit ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Not (Key In['0'..'9',#8]) Then Key := #0;
    Le code #8 est celui de la touche "Delete" en haut du clavier, pour
    permetre la correction.

    Si cela ne répond pas à ton problème, n'hézites pas, en précisant mieux
    sur quoi tu blques.

    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    et bien en fait c'est un calcul cyclique que je voudrais faire.

    je vais tenter de l'expliquer

    soit un TEdit que je vais appeler SaisiEdit
    un autre TEdit que je vais appeler ResteEdit

    Soit ResteEdit = 30 au depart

    Si SaisiEdit = 1 ResteEdit prend alors la valeur de 29
    puis si SaisiEdit =1 ResteEdit devient alors 28
    etc....

    C'est une sorte ce compte a rebours mais qui depend le la valeur saisi et du resultat existant precedement.

    Je sais que ça doit etre tout bete a faire , mais je bloque sur le rapele de ResteEdit

    Je pense que j'ai du mal placé mon processus ou je me trompe dans mon raisonement

    merci pour ton aide

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Points : 190
    Points
    190
    Par défaut
    En gros tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    resteedit.text:=inttostr(strtoint(resteedit.text)-strtoint(saisiedit.text);
    tu mets ce code dans le OnClick d'un Tbutton (sur lequel tu cliqueras dès que tu aura rentré un nouvelle valeur dans saisiedit) et le tour est joué...

    enfin, je crois que c'est ce que tu cherches, ou alors j'ai pas compris la question...

    Edit : il conviendra évidemment de réaliser un test pour vérifier que Saisiedit et Resteedit rentre dans les 'conditions' : être des valeurs numériques, ne pas être négatifs, etc ...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    ok, super ça marche nickel



    merci pour ton coup de main

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

Discussions similaires

  1. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 04h09
  2. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29
  3. Réponses: 8
    Dernier message: 18/09/2002, 03h20
  4. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35
  5. Algo de calcul de FFT
    Par djlex03 dans le forum Traitement du signal
    Réponses: 15
    Dernier message: 02/08/2002, 17h45

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