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 :

Problème avec if


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut Problème avec if
    Bonjour,
    C'est très étrange mais j'essaye de faire un bout de code du genre:

    if condition then
    ...
    else
    ...;

    quand j'exécute mon code ligne par ligne, je me rend compte que delphi ne m'exécute tout simplement rien, ni la première partie qui correspond à la condition, ni la deuxième de else!!!! ce morceau est tout simplement ignoré!!

    ça fait pas longtemps que j'ai réinstallé delphi, alors est ce que c’est possible que ça soit une option qui devrait être activé ou désactivé quelque part, surtout que ce n’est pas la seule chose étrange que j’ai remarqué?

    Merci d’avance
    Cordialement,

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 68
    Points : 66
    Points
    66
    Par défaut
    Si tu mettais ton code en entier, se serait plus simple, je suppose l'oubli des balises Begin...End...(end

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 317
    Points : 183
    Points
    183
    Par défaut
    Comme le dit harvester, si ton code entre if et else contient plusieures lignes, il faut faire come ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if condition then 
    begin
    //code;
    end
    else
    begin
    //code2;
    end;

  4. #4
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    Mon code ressemble un peu près à ça :

    1: if (count <> 4) or (pwdAdmin <> 'toto') then
    2: System.Exit
    3: else
    4: ShowMessage('Hello');
    5:
    6: ...

    J'ai essayé de mettre un begin et end, et aussi de mette une seule condition dans le if, mais c'est tjs pareil: Il passe par la ligne 1, et malgré que les conditions sont vrais, il saute à la ligne 6!!!!!

    je précise que count est un integer et pwdAdmin et un string

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Reconstruit entiérement ton projet.

  6. #6
    Membre régulier Avatar de Tchaill39
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 110
    Points : 70
    Points
    70
    Par défaut directives de compilation
    Lorsque tu compliles, voit tu les petits points verts à coté de ton code ignoré? Si tu ne les as pas, c'est peut être une option de compilation de Delphi qui ignore le code ''futile'', c'est à dire que si tu affectes une valeur à une variable et que tu n'utilise pas cette variable, alors Delphi va ignorer la ligne.
    vas dans" Projet -Option-compilateur" et du décoche la touche "Optimisation"

  7. #7
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Et si tu remplaces System.Exit par un showMessage ?

    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  8. #8
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    À mon avis il te faut suivre le conseil de Laurent car il est probable que ton application utilise une version antérieurement compilée de l'unité ou se trouve ta condition. Si l'unité se trouve dans un paquet recompile-le. Le pb ne vient donc probablement pas de la condition elle-même.

    Sauf erreur, tu peux visuellement t'en rendre compte comme le fait remarquer Tchaill39 en regardant les points bleus (ou verts parait-il) dans la goutiere à gauche du code, qui ne doivent pas tellement correspondre aux lignes de ta condition.

    Par contre à ta place je n'enlèverais pas l'optimisation.
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

  9. #9
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    La recompilation c'est la première chose à faire quand Delphi part en sucette :-)

    En remplaçant System.exit par autre chose, il verra vraiment si ses lignes de codes sont sautées ou pas.

    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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