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 :

gestion des erreurs


Sujet :

Delphi

  1. #1
    Membre du Club

    Inscrit en
    Mars 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 75
    Points : 66
    Points
    66
    Par défaut gestion des erreurs
    Bonsoir à tous,

    Voila mon probleme : j'ai un TEdit(nommé date1) sur ma fiche et je veut convertir ce qui est tapé en integer (il s'agit d'une année). mon morceau de code vaut mieux qu'un grand discourt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm2.date1Change(Sender: TObject);
    var
    a ,i: integer;
    begin
     
    try
      i := StrToInt(date1.text);
      except
        on E: EConvertError do begin
          i := 0;
          date1.text := '0000';
         end;
      end;
    end;

    Quand je lance l'apli, je plante si je rentre un alphanumerique !
    Pourtant, d'aprés mes recherches, ça ne devrait pas.

    Merci de me mener sur le chemin de la solution

    cordialement,

    elecpic

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Salut,

    Citation Envoyé par elecpic Voir le message
    Quand je lance l'apli, je plante si je rentre un alphanumerique !
    Ça plante quand tu lances l'appli DANS l'interface de l'IDE (c'est un grand classique)...
    Lance l'exe tout seul, et tu verras que ça roule (testé à l'instant) !

    EDIT : et tiens, tant qu'on y est, tu peux tester ça, aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if not TryStrToInt(date1.text, i) then date1.text := '0000';
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre du Club

    Inscrit en
    Mars 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 75
    Points : 66
    Points
    66
    Par défaut eh bien ca alors ?? !!
    Un grand merci Jipété,

    Mon code etait bon alors...

    Je viens d'apprendre la prudence et les limite de l'api

    Cordialement,

    elecpic

  4. #4
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    le plus simple serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       i := StrToIntDef(date1.text,'0000');

  5. #5
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Si ton TEdit est destiné à recevoir seulement des chiffres, utilises plutot le composant TSpinEdit, et tu peux directement recuperer la valeur avec

    Citation Envoyé par philnext Voir le message
    le plus simple serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       i := StrToIntDef(date1.text,'0000');
    Plus exactement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i:= StrToIntDef(Date1.Text, 0);  //le deuxieme parametre est un entier

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

Discussions similaires

  1. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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