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 :

Application gui et console (en meme temps)


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 11
    Points
    11
    Par défaut Application gui et console (en meme temps)
    bonjour,
    je travaille sur un project personel avec borland 6, j'utilise borland avec les TFORM.
    Je voudrais savoir si il est possible de faire ça:

    Si mon programme est lancer avec au moin 1 argument alors lancé une version console.
    Sinon lancé le programme en version GUI avec les Tform.

    voila merci.

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonsoir
    aucun problème
    la VCL prévoit des fonctions permettants de connaitre le nombre d'arguments passés en ligne de commande
    ParamCount
    les arguments sont un tableau de string
    ainsi Paramstr(0) retourne le nom complet de l'application
    ParamStr(1) le premier argument, et ainsi de suite
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    oui , heu
    bien je savais cela

    mon probleme est que je n'ai aucune idée dans la façon de procceder pour interrompre le lancement de l'appli grapique, et prendre la main fassons console.

  4. #4
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonsoir
    je n'avais pas compris le sens de ta question
    pour moi la solution est relativement simple
    tu crées 2 application , 1 en mode GUI basée sur la VCL et l'autre en mode console
    le test pour passer du mode GUI ou Console se fait de la manière suivante
    dans le fichier cpp principal de ton application
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
    	try
    	{
    	 if (ParamCount())
    	 {
    	   ShellExecute(NULL,"open","MyConsole.exe","","",SW_SHOW);
    	 }
    	 else
    	 {
    		Application->Initialize();
    		Application->CreateForm(__classid(TForm7), &Form7);
    		Application->Run();
    	 }
    	}
    	catch (Exception &exception)
    	{
    		Application->ShowException(&exception);
    	}
    	catch (...)
    	{
    		try
    		{
    			throw Exception("");
    		}
    		catch (Exception &exception)
    		{
    			Application->ShowException(&exception);
    		}
    	}
    	return 0;
    }
    la console utilisée s'appelle dans ce cas ci MyConsole.exe
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    Citation Envoyé par DjmSoftware
    bonsoir
    je n'avais pas compris le sens de ta question
    pour moi la solution est relativement simple
    tu crées 2 application , 1 en mode GUI basée sur la VCL et l'autre en mode console
    le test pour passer du mode GUI ou Console se fait de la manière suivante
    dans le fichier cpp principal de ton application
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
    	try
    	{
    	 if (ParamCount())
    	 {
    	   ShellExecute(NULL,"open","MyConsole.exe","","",SW_SHOW);
    	 }
    	 else
    	 {
    		Application->Initialize();
    		Application->CreateForm(__classid(TForm7), &Form7);
    		Application->Run();
    	 }
    	}
    	catch (Exception &exception)
    	{
    		Application->ShowException(&exception);
    	}
    	catch (...)
    	{
    		try
    		{
    			throw Exception("");
    		}
    		catch (Exception &exception)
    		{
    			Application->ShowException(&exception);
    		}
    	}
    	return 0;
    }
    la console utilisée s'appelle dans ce cas ci MyConsole.exe
    cordialement
    perso, j'ai un doute que ca soit cela qu'il veux.
    je pense qu'il veux regrouper les TForm et la console dans un meme exe...
    et lancer le GUI si on lance le programme en doublecliquant et lancer la console en lancant en ligne de commande.
    mais c'est mon avis perso...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    exact, Flob91, c'est plutot l'idée vers laquelle je souhaitais m'orienter.

    En effet faire 2 programe et utiliser l'un pour lancer l'autre dans certain cas.
    Ce n'est vraiment pas ce que je souhaite lol


    quand on fait ça :
    #include <stdio.h>
    [...]

    try
    {
    if (ParamCount())
    {
    printf("coucou\n");
    }
    else
    {
    Application->Initialize();
    Application->CreateForm(__classid(TForm7), &Form7);
    Application->Run();
    }
    On obtient pas le printf, car je pense que l'on est dans un processus fils de cmd.exe et plus dans le pere.

    De plus je viens de reflechir, et je me demande..
    Mon application utilise les composants, TServerSocket et TClientSocket.
    Mais ils seront inutilisable si on ne lance pas l'appli graphique ??

  7. #7
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour

    exact, Flob91, c'est plutot l'idée vers laquelle je souhaitais m'orienter.

    En effet faire 2 programe et utiliser l'un pour lancer l'autre dans certain cas.
    Ce n'est vraiment pas ce que je souhaite lol


    quand on fait ça :
    Citation:

    #include <stdio.h>
    [...]

    try
    {
    if (ParamCount())
    {
    printf("coucou\n");
    }
    else
    {
    Application->Initialize();
    Application->CreateForm(__classid(TForm7), &Form7);
    Application->Run();
    }
    On obtient pas le printf, car je pense que l'on est dans un processus fils de cmd.exe et plus dans le pere.

    De plus je viens de reflechir, et je me demande..
    Mon application utilise les composants, TServerSocket et TClientSocket.
    Mais ils seront inutilisable si on ne lance pas l'appli graphique ??
    l'idée suivie est également la même , c'est à dire deux applications, une en mode console et l'autre en mode graphique.

    il est normal que printf ne fasse rien car il n'est pas chargé de processus console en mémoire.

    en mode console il est tout a fait envisageable d'utiliser des composants de la VCL
    c'est a toi de programmer les différents évènements .

    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    En fait je vais choisir une methode de feignant,
    Si il ya le nombre de parametre requis, alors je lance l'application en non-visible, je rempli les case avec les parametres et je lance le truc lol

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

Discussions similaires

  1. Application cliente et serveur en meme temps avec socket
    Par anzid dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 10/02/2015, 12h24
  2. Réponses: 3
    Dernier message: 27/06/2012, 13h49
  3. Deux application qui s'executent en meme temps
    Par étoile de mer dans le forum Débuter
    Réponses: 8
    Dernier message: 20/10/2009, 00h07
  4. déployer redemption en meme temps que son application
    Par bobby51 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 25/03/2009, 14h03
  5. Réponses: 3
    Dernier message: 05/05/2007, 17h53

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