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

Free Pascal Discussion :

Ma première application console ne s'affiche pas


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut Ma première application console ne s'affiche pas
    Bonjour à tous,

    La question est un peu bête mais je m'adresse à vous car je ne trouve pas de solution. Je veux faire le programme le plus simple du monde, qui affiche 'Salut', mais aucune fenêtre ne s'ouvre. Voici le code que j'ai copié sur un cours que j'ai trouvé sur ce forum:

    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
     
    program project_ex1;
     
    {$mode objfpc}{$H+}
     
    uses
      {$IFDEF UNIX}{$IFDEF UseCThreads}
      cthreads,SysUtils, Dialogs;
      {$ENDIF}{$ENDIF}
      Classes
      { you can add units after this };
     
    begin
      writeln('Salut');
     
      readln;
    end.
    Normalement le readln devrait "geler " la fenêtre où doit s'afficher le message.

    Merci d'avance pour votre aide,

    Thibault

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 167
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Comment compilez-vous le programme ? Avec Lazarus ou avec Free Pascal directement ?

    Quelque chose me dit que vous compilez avec Lazarus et que vous avez choisi la mauvaise option lors de la création du projet : c'est-à-dire que vous avez créé une application graphique au lieu d'une application console. Si tel est le cas, il faut modifier les options du projet (je ne peux pas être plus précis, n'ayant pas Lazarus sous la main), ou ajouter la directive suivante dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {$mode objfpc}{$H+}
    {$APPTYPE CONSOLE} // <----

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut
    Bonjour!

    En effet je compile directement sous lazarus, j'ai oublié de le presciser. Pour créer ce projet je suis allé dans le menu projet>> nouveau projet>> programme. J'ai rentré la directive que vous m'avez donné mais toujours rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    program project_ex1;
     
    {$mode objfpc}{$H+}
    {$APPTYPE CONSOLE}
    Quand je compile, dans les messages je peux voir que le projet à été crée avec succès mais il y a écrit : Warning : APPTYPE is not supported by the target OS.

    Si je crée un nouveau projet en choisissant application console, le code suivant apparait:

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    program Project1;
     
    {$mode objfpc}{$H+}
     
    uses
      {$IFDEF UNIX}{$IFDEF UseCThreads}
      cthreads,
      {$ENDIF}{$ENDIF}
      Classes, SysUtils, CustApp
      { you can add units after this };
     
    type
     
      { TMyApplication }
     
      TMyApplication = class(TCustomApplication)
      protected
        procedure DoRun; override;
      public
        constructor Create(TheOwner: TComponent); override;
        destructor Destroy; override;
        procedure WriteHelp; virtual;
      end;
     
    { TMyApplication }
     
    procedure TMyApplication.DoRun;
    var
      ErrorMsg: String;
    begin
      // quick check parameters
      ErrorMsg:=CheckOptions('h','help');
      if ErrorMsg<>'' then begin
        ShowException(Exception.Create(ErrorMsg));
        Terminate;
        Exit;
      end;
     
      // parse parameters
      if HasOption('h','help') then begin
        WriteHelp;
        Terminate;
        Exit;
      end;
     
      { add your program here }
     
      // stop program loop
      Terminate;
    end;
     
    constructor TMyApplication.Create(TheOwner: TComponent);
    begin
      inherited Create(TheOwner);
      StopOnException:=True;
    end;
     
    destructor TMyApplication.Destroy;
    begin
      inherited Destroy;
    end;
     
    procedure TMyApplication.WriteHelp;
    begin
      { add your help code here }
      writeln('Usage: ',ExeName,' -h');
    end;
     
    var
      Application: TMyApplication;
    begin
      Application:=TMyApplication.Create(nil);
      Application.Title:='My Application';
      Application.Run;
      Application.Free;
    end.

    Voici un copié collé du tuto que j'ai suivis(http://gg.lgl.lu/w_1B/2009/Info/info...008_2009.pdf):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    program Bonjour;
    {$mode objfpc}{$H+}
    uses
     {$IFDEF UNIX}{$IFDEF UseCThreads}
     cthreads,
     {$ENDIF}{$ENDIF}
     Classes
     { you can add units after this };
    begin
     writeln(‘Bonjour tout le monde !’); {affichage}
     readln; {attente}
    end.

    Merci pour votre aide

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 129
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 129
    Par défaut
    Salut,

    Citation Envoyé par Cortes_tf Voir le message
    Voici un copié collé du tuto que j'ai suivi (http://gg.lgl.lu/w_1B/2009/Info/info...008_2009.pdf):
    Lien moisi...

    Toujours vérifier ses liens avant de tourner les talons !

    Quant à ce code, il fonctionne très bien et fait exactement ce pour quoi il a été écrit, à condition de remplacer les apostrophes typographiques (arrondies) par ce que les typographes appellent "chiures de mouche", les apostrophes droites, moches et utilisées dans les codes informatiques. Dessous c'est corrigé :
    Citation Envoyé par Cortes_tf Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    program Bonjour;
    {$mode objfpc}{$H+}
    uses
     {$IFDEF UNIX}{$IFDEF UseCThreads}
     cthreads,
     {$ENDIF}{$ENDIF}
     Classes
     { you can add units after this };
    begin
     writeln('Bonjour tout le monde !'); {affichage}
     readln; {attente}
    end.
    Avec ça j'avais des messages d'erreurs complètement farfelus à la compilation (agrandi pour bien montrer les apostrophes) :

    Nom : apostrophes.png
Affichages : 822
Taille : 3,6 Ko

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut
    Bonjour,


    Je suis désolé de vous prendre du temps pour un sujet si simple mais même en faisant un copier coller du code que vous avez corrigé rien ne s'affiche, sauf en que le projet a bien été crée en messages. Je remet un copier coller du code que j'ai mis, en faisant attention aux "chiures de mouches" (''):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    program project_ex1;
     
    {$mode objfpc}{$H+}
    uses
     {$IFDEF UNIX}{$IFDEF UseCThreads}
     cthreads,
     {$ENDIF}{$ENDIF}
     Classes
     { you can add units after this };
    begin
     writeln('Bonjour tout le monde !'); {affichage}
     readln; {attente}
    end.
    J'ai regardé sur youtube une fenêtre avec comme icone une "patte d'ours" devrait s'afficher. Est ce que j'ai commis une erreur au moment de la création du projet? je suis simplement allé dans projet<<nouveau projet<< programme.

    Encore désolé et merci pour votre aide,

    Thibault

    Encore désolé et merci pour votre aide

  6. #6
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 129
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 129
    Par défaut
    Citation Envoyé par Cortes_tf Voir le message
    Je suis désolé de vous prendre du temps pour un sujet si simple mais même en faisant un copier coller du code que vous avez corrigé rien ne s'affiche,
    Exactement le même code :
    Nom : project1.png
Affichages : 833
Taille : 8,6 Ko

    Citation Envoyé par Cortes_tf Voir le message
    J'ai regardé sur youtube une fenêtre avec comme icone une "patte d'ours" devrait s'afficher. Est ce que j'ai commis une erreur au moment de la création du projet? je suis simplement allé dans projet<<nouveau projet<< programme.
    Un programme "console" n'a en général pas d'icône, et par ailleurs tu n'as pas corrigé le lien moisi donc on ne peut pas aller voir le tuto dont tu parles...

    Utilise le bouton "Modifier le message" pour corriger ce foutu lien.

Discussions similaires

  1. Icône de l'application qui ne s'affiche pas sous XP
    Par ICR5_68 dans le forum Développement Windows
    Réponses: 0
    Dernier message: 08/03/2015, 13h47
  2. code::blocks la console ne s'affiche pas
    Par setni dans le forum C
    Réponses: 8
    Dernier message: 16/02/2014, 21h14
  3. Application console qui n'utilise pas Qt
    Par Neckara dans le forum Qt Creator
    Réponses: 0
    Dernier message: 21/07/2012, 17h22
  4. VS2010 Application Console "process ne repond pas"
    Par xian21 dans le forum Développement Windows
    Réponses: 5
    Dernier message: 23/08/2010, 17h20
  5. Mes applications console ne s'éxecutent pas
    Par mok16 dans le forum C++
    Réponses: 14
    Dernier message: 12/01/2007, 23h54

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