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

 Delphi Discussion :

Démarrage et utilisation de la console


Sujet :

Delphi

  1. #1
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut Démarrage et utilisation de la console
    Bonjour,

    J'utilise souvent une console pour afficher ce que j'ai dans la memoire de mes programme pour faire des test en continu.
    La console que j'utilise marche avec la commande writeln et est démarrée automatiquement avec le check box dans :
    projet/option/linker/EXE and DLL option/Text windows (Traduit comme je peut de l'allemand).

    Cette méthode me gène un peu car j'ai toujours cette fenêtre dans les pieds quand je fais quelque chose.
    J'aimerai pouvoir démarrer la console avec la fonction chargée de l'affichage seulement au moment opportun.

    Juste pour la terminologie, est-ce que l'on parle de console ici ??
    Est-ce que cela est possible?

    Merci de m'aider

    marc_3

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 343
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    tu peux aussi écrire dans un Tmemo situé dans une autre fenêtre non modale que tu affiches quand tu veux voir ce qu'il y a dedans (par un raccourci clavier ou par un bouton).

    A+
    Charly

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Sous Windows les application GUI et CONSOLE sont deux types d'exécutables qui se distinguent par un attribut dans l'entête du fichier (sous Linux ou Mac il n'y a pas de distinction)

    sous Delphi c'est {$APPTYPE CONSOLE} qui permet de déclarer que l'application est de type "console".

    Mais rien n'empêche une application GUI d'ouvrir une console de debug avec la fonction AllocConsole()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    uses
      WinAPI.Windows;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      AllocConsole();
      WriteLn('Debug mode actif');
    end;
    c'est même très pratique

    accessoirement je fais ça aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    uses
      WinAPI.Windows;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    {$IFDEF DEBUG_CONSOLE}
      AllocConsole();
    {$ELSE}
      AssignFile(Output, ChangeFileExt(Application.exeName, '.LOG'));
      Rewrite(Output);
    {ENDIF}
      WriteLn('Debug mode actif');
    end;
    le code permet d'avoir soit une console à l'écran, soit un fichier LOG.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Très intéressant tout ca Paul
    Tu peux utiliser aussi GDebug qui est pas mal (dans GExperts). Il te permet d'afficher dans un programme externe des infos envoyées par SendDebug() (fonction fournie aussi par GExperts).

  5. #5
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    Merci de vos aides, la console de débogage ç’a a l'air d’être un sujet vraiment populaire

    A par ça Delphi c'est vraiment chouette

    marc_3

  6. #6
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 959
    Points
    6 959
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    accessoirement je fais ça aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    uses
      WinAPI.Windows;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    {$IFDEF DEBUG_CONSOLE}
      AllocConsole();
    {$ELSE}
      AssignFile(Output, ChangeFileExt(Application.exeName, '.LOG'));
      Rewrite(Output);
    {ENDIF}
      WriteLn('Debug mode actif');
    end;
    le code permet d'avoir soit une console à l'écran, soit un fichier LOG.
    J'ai testé, et l'anti-virus m'a immédiatement supprimé l'exe généré.
    Je ne comprend pas le paramètre Output. C'est une nouveauté des Delphi supérieurs à D2010 ?

    Sinon, le principe est intéressant.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  7. #7
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par Lung Voir le message
    J'ai testé, et l'anti-virus m'a immédiatement supprimé l'exe généré.
    Je ne comprend pas le paramètre Output. C'est une nouveauté des Delphi supérieurs à D2010 ?

    Sinon, le principe est intéressant.
    Output existe depuis longtemps j'allais dire depuis les début de Delphi.

    C'est la sortir standard de l'application. Output est défini dans system.pas (pour Delphi7) et n'est a mon avis assigné de manière automatique que quand on créer une application de type console (ou qu'on ouvre une console)...

    Un write ou writeln demande de manière optionnelle un fichier si on ne lui en donne pas c'est vers la sortie standard que c'est envoyé (le fameux Output)

    Ce qui est malin c'est d'assigner soit même le output à un fichier texte. Sachant qu'il n'est pas assigné puisqu'on est dans une application GUI.

    Cette affectation permet d'utiliser le writeln('test'); que l'on utilise la console ou pas ...

    Sinon pour enrichir le sujet pour debuguer ou suivre, tracer dans un fichier ou un ecran il existe codeSite. Plus besoin de console, le principe est un peu le même mais permet beaucoup plus de chose. Enregistrement dans un fichier log, ou affichage directement dans un écran dédié, (qui peut être distant : remote). Le plus c'est évidemment la présentation, le passage d'objet qu'on va pouvoir inspecter etc...


    Bravo

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par Lung Voir le message
    J'ai testé, et l'anti-virus m'a immédiatement supprimé l'exe généré.
    Je ne comprend pas le paramètre Output. C'est une nouveauté des Delphi supérieurs à D2010 ?

    Sinon, le principe est intéressant.
    les anti-virus sont des boulets

    Input et Ouput existent depuis Turbo Pascal
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. [7ZIP] Utilisation en projet console
    Par dacamp dans le forum VB.NET
    Réponses: 5
    Dernier message: 28/02/2008, 21h31
  2. [Ubuntu] Démarrage par défaut en mode console
    Par Manumation dans le forum Ubuntu
    Réponses: 3
    Dernier message: 14/11/2007, 10h36
  3. [C] utiliser uniquement la console sous windows
    Par Bornerdogge dans le forum SDL
    Réponses: 14
    Dernier message: 28/09/2007, 19h18
  4. Affichage et utilisation de la console dans un programme GUI
    Par mchk0123 dans le forum C++Builder
    Réponses: 2
    Dernier message: 30/04/2007, 14h17
  5. Quel navigateur utiliser en mode console?
    Par krachik dans le forum Applications et environnements graphiques
    Réponses: 13
    Dernier message: 17/03/2007, 15h50

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