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 :

Impossible de trouver l'emplacement pour ajouter la méthode Boutton1Click."END" ou "INITIALIZATION" non trouvé


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Impossible de trouver l'emplacement pour ajouter la méthode Boutton1Click."END" ou "INITIALIZATION" non trouvé
    Bonjour ,

    j'ai un problème assez bizarre ,
    Je n'arrive plus à créer une fonction sur un événement, j'obtiens systématiquement le message suivant :
    "Impossible de trouver l'emplacement pour ajouter la méthode Boutton1Click."END" ou "INITIALIZATION" non trouvé dans le source de l'unité "

    C’est un cas qui a été soulevé par KATY8545 et Claudius a répondu par l'absence de fin de fichier

    Dans mon cas le fichier se termine bien par le code suivant

    Initialization
    FormStatistiques := nil ;
    end.

    Et le programme se compile correctement.

  2. #2
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    Boutton1Click."END"
    verifie le syntaxe a la fin de unité

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Le probléme ne vient ps du END ( le code se compile et s'éxécute correctement )
    La syntaxe de fin d'unité est correcte

    J'ai comme l'impression que le problème vient du code , comme si un caractère parasite ( invisible ) c'était positionné quelques part et provoque ce problème.
    Le code se compile normale , et l'exécution est correcte .
    Le seul problème est celui indiqué " Impossible ...... "

    En 15 ans de développement en DELPHI et PASCAL , c'est la première fois que je rencontre ce problème "étrange" ....

    Quelqu'un a-t-il eu un problème équivalent ( et trouvé une solution )?

    merci

  4. #4
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    J'ai recontré un probleme similaire lorsque je clique sur un bouton je verifie le code je trouvais end coller avec un autre... mais attention a la compilation partial sur ton projet supprime tout les fichier .dcu .dof .cfg garder seulement .pas dfm .dpr

  5. #5
    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
    AH!

    ça, je te comprend c'est absolument chi*nt quand ça arrive!

    moi j'ai trouvé une petite astuce.

    parfois, un symbole (tab, stx, cr, lf, ou autre) est present quelque part.
    ça arrive souvent avec les copier-coller a partir de sources C, C++ ou de page internet etc.

    donc voici l'astuce :

    si tu as NotePad++ ouvre le, et charge le fichier .pas qui pose probleme.
    (n'oublie pas de le mettre a jours).

    ici, plusieurs manip :

    menu affichage -> symboles speciaux -> afficher tout les caracteres.

    avec tu vas pouvoir controler si un caractere "idiot" c'est mis dans le fichier.

    ensuite avec la recherche avancée (ctrl+R) tu vas pouvoir compter tout les "end;" et comparer à tout les "try" et "begin".
    50 end; et 50 begin, tout est ok
    50 end; et 46 begin + 4 try, tout est ok

    pour aller plus vite, on peu chercher directement tout les "end." ou tout les "end".


    avec juste l'ide delphi, c'est un peu plus long de localiser le probleme.
    generalement une suppression, bloc par bloc puis ligne par ligne dans le bloc problematique.
    on vas plus vite en mettant les bloc en commentaire : CTRL+/
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Solution au problème
    Merci pour votre aide.
    l'utilisation de NodePad ++ est en effet très utile .
    J'ai fait une recherche de ces caractères spéciaux mais je n'ai rien trouvé.

    J'ai alors découpé ma Unit en 2 parties pour isoler dans une Unit tout le code non directement lié à la form

    Après cette séparation tout est redevenu normal.
    Nous avons alors étudié le code isolé pour savoir d'où venait le problème
    et par chance nous avons trouvé le code qui pose problème.

    Voici le résumé du code

    Type TCumul= Class(Tobject)
    Jour : String ;
    Duree : Extended
    End;

    Le problème vient du fait qu'il n'y a pas de ";" après "Extended "
    La syntaxe sans le ";" me semble normale, le compilateur ne voit pas d'erreur et compile correctement le code, par contre IDE n'arrive pas à créer ou à retrouver le lien entre les événements des composants et les procédures .

    Voilà 10 heures de "galère" pour un petit ";"

    Le code qui permet le lien entre les composants e les procédures est le suivant

    Type TCumul= Class(Tobject)
    Jour : String ;
    Duree : Extended ;
    End;

    Ce problème s'est produit en Delphi 2007.
    Cette solution pourra peut-être aider certains d’entre vous

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut
    Plus spécifiquement

    Cette déclaration est 'fautive'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Type TCumul= Class(Tobject)
    Jour : String ;
    Duree : Extended 
    End;
    dans la partie interface.

    Dans la partie implémentation, cette déclaration ne pose aucun problème.

    En effet l'usage est que le dernier point virgule avant le end est optionnel.

    C'est un problème qui doit remonter au premier jour de la programmation objet de l'IDE.

    Sur Delphi Berlin, le problème est encore présent

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

Discussions similaires

  1. [XL-2003] bouton pour trouver l'emplacement d'un fichier
    Par NovVba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2009, 12h39
  2. Réponses: 7
    Dernier message: 20/02/2009, 14h06
  3. Impossible de trouver mod_perl pour windows
    Par mithrendil dans le forum Apache
    Réponses: 2
    Dernier message: 11/01/2008, 11h41
  4. Réponses: 2
    Dernier message: 23/07/2007, 16h01
  5. Réponses: 1
    Dernier message: 28/06/2007, 09h26

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