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 :

Comportement différent du programme suivant le mode d'exécution


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 240
    Points : 102
    Points
    102
    Par défaut Comportement différent du programme suivant le mode d'exécution
    extrait du 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
    17
    18
    19
    20
    21
    22
    23
    24
     
    procedure TfrmScan.iLecteurValidate(Sender: TObject; var Line: String;
      var sAction: TValidateAction);
    begin
       sAction := ConvertLine(Line);
       if sAction <> vaOk Then
          With TfrmCorrection.Create(Self) do // 1er point d'arret
               try                            // 2ème point d'arret
                Self.Hide;
                eCorrection.Text := line;
                ViewImege(iLecteur.msFJpgImage);
                if ShowModal=mrOK then begin
                                         Line := eCorrection.text;
                                         sAction := vaCorrected
                                        end
                else begin
                       sAction := vaDELETED;
                       Inc(nbALire)
                     end;
               finally
                 free;
                 Self.Show
               end
    end;
    j'exécute le prog. en mode normal (F9), l'exécution s'arrete sur le 1er point d'arret : jusque là rien de bizarre. Ensuite 2 cas possibles...
    1- si je continue en mode F9 j'ai immédiatement la fenetre d'erreur suivante : le projet a provoqué une classe d'exception EInvalidOperation avec le message 'le canevas ne permet pas de dessiner' (etc...)
    2- si je continue en mode pas-à-pas (F8 ) , l'exécution passe au 2ème point d'arret puis je poursuit en mode F9 sans problème : la fenetre TfrmCorrection s'affiche (etc...)

    >> mon but était de faire du pas à pas pour débogger le prog. mais je ne comprend pas la différence de comportement je ne vois pas comment je peux corriger l'erreur ! y aurait-il une explication ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'ai deux opinions sur ton problème:
    - Je pense que tu devrais dessiner sur ton canvas avant le hide...
    - Il est possible que lors du premier appui sur F8, un temps suffisant a passé pour qu'il n'y ait pas d'erreur (Hide interdit dans le OnShow...) lors de l'appui sur F9, ce temps n'existe pas si tu fais directement F9.

    Essaye de mettre un sleep pour valider ça!

  3. #3
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 240
    Points : 102
    Points
    102
    Par défaut
    je suis pas sûr d'avoir compris :
    je met une instruction : Sleep(1000);
    juste après la ligne : TfrmCorrection.Create(Self)

    et de déplacer le Self.Hide (qui concerne la fiche TfrmScan) avant cette meme ligne de création de ma fiche TfrmCorrection ?

  4. #4
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 240
    Points : 102
    Points
    102
    Par défaut
    effectivement en déplaçant le Self.Hide (qui concerne la fiche TfrmScan) avant lacréation de la fiche TfrmCorrection : ça marche !!!
    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/01/2010, 15h00
  2. Réponses: 0
    Dernier message: 25/10/2008, 10h50
  3. Comportement différent selon Mode Execution
    Par MarronSuisse dans le forum C
    Réponses: 7
    Dernier message: 14/04/2008, 12h52
  4. Réponses: 26
    Dernier message: 16/04/2007, 21h18
  5. Réponses: 15
    Dernier message: 19/06/2006, 19h25

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