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

 Delphi Discussion :

Je ne comprends pas ce code


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Je ne comprends pas ce code
    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
    procedure TfmPrinc.btLireClick(Sender: TObject);
    var
      v, e, valeur: integer;
    begin
      val(edCle.Text, v, e);     // je comprends pas cette ligne à quoi ça va  servir?
      if e = 0 then
      begin
        valeur := fTele1.Chaines[v];
        if valeur <> -1 then
          edValeur.Text := IntToStr(valeur)
        else
          ShowMessage('La clé n°' + IntToStr(v) + ' n''existe pas.');
      end
      else
        ShowMessage('La clé doit être une valeur entière.');
    end;
    en fait mon probleme reside dans la ligne ou ce trouve le commentaire!!! merci

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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    procedure Val(S; var V; var Code: Integer);

    Description

    La procédure Val convertit la valeur chaîne S en son équivalent numérique, comme si elle était lue depuis un fichier texte, via Read.

    S est une expression de type chaîne*; il doit s'agir d'une séquence de caractères formant un nombre réel signé.

    V est une variable de type entier ou réel. Si V est une variable entière, S doit former un nombre entier.

    Code est une variable de type Integer.

    Si la chaîne n'est pas valide, l'indice du caractère erroné est stocké dans Code*; sinon, Code est mis à zéro. Pour une chaîne à zéro terminal (AZT), la position renvoyée par Code est supérieure d'une unité à l'indice de base zéro du caractère erroné.

    Val effectue une vérification d'étendue selon l'état de $R et du type du paramètre V.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Points : 17
    Points
    17
    Par défaut merci, mais j'ai un petit commentaire
    donc la fontion val, revient à la meme expression que, à titre d'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x:=edit.texte;
    s:=strtoint(x);
    C'est convertir la valeur lu à laide de edit et la convertir en valeur numerique de type integer?

  4. #4
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 289
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 289
    Points : 1 940
    Points
    1 940
    Par défaut
    StrToInt fait appel à Val.

    Mais pour simplifier le code, le plus simple serait de faire appel à TryStrToInt

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    ok merci

  6. #6
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    code qu'on pourrait remplacer par :

    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
    procedure TfmPrinc.btLireClick(Sender: TObject);
    var
      v, valeur: integer;
    begin
      if TryStrToInt(edCle.Text, V) then
      begin
        valeur := fTele1.Chaines[V];
        if valeur <> -1 then
          edValeur.Text := IntToStr(valeur)
        else
          ShowMessage('La clé n°' + edCle.Text + ' n''existe pas.');
      end
      else
        ShowMessage('La clé doit être une valeur entière.');
    end;

Discussions similaires

  1. Je ne comprends pas ce code
    Par tofies33 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/02/2015, 14h16
  2. comprends pas le code JS pour faire défiler les images
    Par happyboon dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2013, 11h07
  3. Je ne comprends pas ce code
    Par chok371 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/12/2010, 16h51
  4. je comprend pas un code du cours perl
    Par fifto dans le forum Langage
    Réponses: 1
    Dernier message: 15/05/2007, 20h14
  5. Je ne comprend pas le code source de ce programme
    Par elmodeno dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/10/2006, 12h16

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