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

C++Builder Discussion :

Lien entre deux applications


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut Lien entre deux applications
    Bonjour;
    je travaille sur deux applications et je veux qu'au clic d'un bouton de la première application ouvrir le projet de la duxième application mais sans avoir recourt au composant OpenDialog.
    merci d'avance.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Bref tu veux qu'une de tes applications ordonnes à une deuxième d'ouvrir un fichier donné ?

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    oui, exact.

  4. #4
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !
    Dans ta première aplication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    
    ShellExecute(NULL,"Open",
    "Chemin de ta 2eme application",
    "Chemin du fichier à ouvrir par la 2eme application",
    NULL,1);
    }
     
    
    


    dans ta 2eme application qui v recevoire comme paramètre :le chemin complet du fichier à ouvrir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
    if (ParamCount()>0)
           {
           AnsiString FichierAOuvrir=ParamStr(1);
           //Ouverture d fichier
           }
    }
     
    

    ++

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    merci, je vais essayer

  6. #6
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    re

    C'est l'évenement OnShow de la form de la 2eme application qui va ouvrir les fichier.

    Nom : Sans titre.JPG
Affichages : 144
Taille : 9,2 Ko

    ++

  7. #7
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    j'ai compris, il faut ajouter un évenemt et non un composant

    la suite a trés bien marché, merci à tous

  8. #8
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    pardon, un petit problème est survenu.
    lors de l'execution, avant que la 2ième application ouvre le fichier demandé, un message " session en débogage...." s'affiche. je sais que c'est normale puisque la 1ière application était en état d'execution, mais est ce qu'on peut éviter ce message?

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Peut être compiler ta deuxième application en version Finale et non débug...même si je n'ai jamais eu ce problème en faisant des choses similaires.

  10. #10
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    pardon, je n'ai pas compris.
    résumé du problème: dans la forme de la 1ière application un click sur un bouton permet d'ouvrir la 2ième application (càd .bpr). avant qu'elle s'ouvre le message (session en débogage voulez vous arrêtez) apparaît. en choisissant arrêter l'execution de la 1ière application s'achève et le .bpr de la 2ième application s'ouvre et c'est bien ce que je veut mais si possible sans le message de débogage.

  11. #11
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    C'est pas dutout ce que j'ai compris !

    et je ne voi pas dutout l'interête
    Y a sûrement une autre solution pour ton problème

    ++

  12. #12
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    je sais que ce n'ai pas ce que vous avez compris mais comme ça ma pratiquement résolu le problème , j'ai continuer sur votre piste.
    concernant l'interet, il faut vous expliquer le contexte de mon travail:
    ils nous est été demander de réaliser une partie d'un analyseur syntaxique (partie d'un compilateur). cet analyseur va permettre de génerer le code c d'une grammaire donnée (il faut avoir des notion de compilation pour comprendre).donc la 1ière application génère ce code dans une deuxième application ceci a été fait en écrivant le code c dans le .h de la 2 ième app et pour compiler ce dernier j'ai voulu fair le lien dont je parlais.
    pardon d'être trop lente. ce n'est pas grave si vous m'avez pas comprise. j'ai juste voulu vous expliquer.

  13. #13
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    re

    Pourquoi ne pas executer ton code source généré en langage C sous commande DOS (avec ShellExecute par example);comme ça t'aura pas la peinne de fermer et ouvrir les deux application à chaque fois,puisque t'aura le resultat sous DOS


    En ce qui concerne les notions du compilateur :
    Les phase d'analyse d'un compilateur ne génèrent pas un code source ,au contraire,c'est à partir du code source que commence leur travail (enlever les blancs inutiles,vérifier les erreurs syntaxiques,sémantiques ou lexicals...tel "int 1x;"...) en utilisant les méthodes ascendantes et ou décsendantes (LLK,SLR,LALR,SLAR,procedure récursive...)

    Bonne continuation...

  14. #14
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    il ne faut pas rire avant de comprendre
    voici le travail à réaliser en claire:
    développer un générateur d'analyseur syntaxique utilisant la méthode d'analyse de précédence simple ou faible selon le choix.à partir d'une grammaire G en entrée par un utilisateur du générateur vérifier s'il est possible d'effectuer une analyse de précédence simple/faible. si oui générer le programme d'analyse syntaxique relatif à la méthode choisit qui une fois compilé permettra d'analyser syntaxiquement les mots du langage L(G).

    donc:
    - le code que je génère est le code d'analyse PS/PF.
    -puisque l'algorithme d'analyse est générale à tout les mots de n'importe quelle grammaire, j'ai implémenter son programme dans la 2ième app.
    et ce qui est généré par la 1ière app n'est qu'une procédure d'initialisation qui passe à la 2 app la grammaire entrée par l'utilisateur et la table de relation construite par l'app1 relative à la méthode choisit.

    j'espère que vous avez compris.

  15. #15
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut

    donc:
    - le code que je génère est le code d'analyse PS/PF.
    -puisque l'algorithme d'analyse est générale à tout les mots de n'importe quelle grammaire, j'ai implémenter son programme dans la 2ième app.
    et ce qui est généré par la 1ière app n'est qu'une procédure d'initialisation qui passe à la 2 app la grammaire entrée par l'utilisateur et la table de relation construite par l'app1 relative à la méthode choisit.

    Salut !

    En gros,la 1ere application fait un traitement,et la deuxieme fais un autre traitement basé sur le résultat de la 1ere,si c'est le cas,je ne comprend pas pourquoi tu veux lancer le fichier projet (.bpr) de la deuxème appication

    a+

  16. #16
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    c'est pour compiler puis executer l'analyseur de précedence simple ou faible avec la forme de l'app qui contient un edit text qui reçoit la chaine à analyser. en résumé je compile tout le projet.en fait je veut le lancer à partir de la 1 app pour montrer que c'est la première app qui génère le code de la 2'ième app car on a insister sur ça dans le travail demandé

  17. #17
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Alors,pour quoi ne pas faire comme je t'ai dis en haut ?

    lancer l'application2(l'executable qui est déja programmé et compilé !!) en lui donnant comme paramètre la chaîne à analyser (elle doit être courte):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     
    ShellExecute(NULL,"Open",
    "Chemin de ta 2eme application",
    "Chaine à analyser",
    NULL,1);
     
    }
    }
    Et la deuxième application,au démarrage,reçois cette chaine,et sera traité comme tu l'as prévu...

    sinon,pour faire plus simple,gestionner l'accée à un fichier text,genre Application1 fait son traitement1 ,et sauvegarde le résultat dans ce fichier puis lance la deuxième application qui elle à son tours,li les résultat écrite dans ce fichier,et fait le traitement 2...


    ++

  18. #18
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    je vous rappelle que le problème de communication entre les deux applications est résolut, les paramètres sont passé de la app1 à app2 via un fichier texte qui est le .h de l'app2. et ça marche bien (compilation et execution ). je vous rappelle que le pb est message de session en débogage qui la cause l'utilisation de shellexecute ...qui interrompe l'exe de l'app1 pour executer l'app2. en résumé: mon travail marche trés bien je veux seulement éviter ce message.je ne pense pas que c'est possible tel que j'ai procédé.je peut laisser le travail tel qu'il est en explicant à l'utilisateur de choisir arreter la session en débogage lors de l'apparition du message et tout est réglé.
    merci beaucoup d'avoir s'interessé

    le problème de l'apparition du message session en débogage est du au fait d'interropre l'execution du projet1 de l'application1 pour executer l'application 2.
    mais le problème ne se pose pas si on lançait l'execution de l'application1 à partir de l'executable (car aucun projet n'est ouvert) et ceci nous convient bien puisque l'utilisateur de l'application ne possède que l'executable.

    encore une fois, merci à tous

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

Discussions similaires

  1. lien entre deux application VB
    Par mqsi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/12/2006, 01h18
  2. Liens entre deux applications
    Par Plawi dans le forum MFC
    Réponses: 3
    Dernier message: 14/03/2006, 23h01
  3. Réponses: 6
    Dernier message: 09/04/2005, 11h20
  4. Comment établir un lien entre 2 applications ???
    Par loupdeau dans le forum MFC
    Réponses: 12
    Dernier message: 07/04/2005, 08h15
  5. [VB.NET] ComboBox lien entre deux tables
    Par VDB1 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/07/2004, 12h15

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