Delphi > Executable > Affichage

Signaler
-
Messages postés
257
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
4 août 2020
-
Bonjour,
Mon programme fonctionne bien mais seul problème:
Lorsque je l'exécute et que je rentre des donnés nécessaire, le résultat apparaît une seconde et la fenêtre se ferme.

je voudrais donc savoir ce qu'il y aurait à ajouter en Pascal dans mon programme afin que je puisse voir le résultat s'afficher.


Merci

9 réponses

Messages postés
14692
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 août 2020
144
Je ne fais pas de Pascal/Delphi, mais il doit exister une fonction qu permet de recevoir et attendre un caractère du clavier (en .NET : Console.ReadKey() ) cela mettra en pause ton programme.
Où trouver cette fonction ?


Merci
Messages postés
14692
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 août 2020
144
Dans l'aide de ton environnement de développement ?
@NHenry Si je vais dans Aide:

L'aide de ce programme a été créée dans le format d'aide Windows, ce qui dépend d'une fonctionnalité non incluse dans Windows 8.1 ou Windows RT 8.1. Pour plus d'informations, rendez-vous sur le site Web de Microsoft Support.
Messages postés
14692
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 août 2020
144
J'ai juste recherché "Delphi console get key" et les liens sont très prometteurs.
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
11
Salut
si l'information ne s'affiche pas correctement sur l'écran plusieurs possibilités
- c'est pas très bien programmé (la machine ne fait que ce qu'on lui dit de faire)
- il y a un bug quelque part

il faudrait au moins avoir le bout de code de l'opération qui amène le défaut
a+
Messages postés
1
Date d'inscription
samedi 13 décembre 2008
Statut
Membre
Dernière intervention
8 décembre 2014

Bonjour,

Il est possible que ce soit mal programmé, que faudrait-il ajouté de spécial ?

Merci
Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019
15
Brrr....
Ce programme est ensorcelé !
Ce qu'il faut, c'est un exorcisme.
Ouais bon merci de votre aide je ne trouverais donc jamais de solution
(Programme que l'on fait en cours mais avec un prof où c'est débrouille toi)
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
  var S,ST,SP, I,NBF,NBH,STF,STH,XG,XF,P,T,X28 : integer     ;
  R ,MOYT,MoyP,MoyST,MoySp,MoyTF,MoyTH  : currency;


BEGIN
ST:=0;
SP:=0;
I:=0;
NBF:=0;
NBH:=0;
STH:=0;
STF:=0;
XG:=0;
XF:=0;

While ((S=1) OR (S=2)) DO
        BEGIN
        I:=I+1;
        writeln ('poids');
        readln (P);
        writeln ('taille');
        readln (T);
        ST:= ST+T;
        Sp:=Sp+P;
        END;

        IF (S=1) THEN
        BEGIN
        NBH:=NBH+1;
        STH:=STH+1;
        END
                ELSE
                BEGIN
                NBF:=NBF+1;
                STF:=STF+T;
        END;
        R:= T/P;
                IF (R<2.8) THEN
                BEGIN
                X28:= X28+1;
                END;
        MoyST:=ST/I;
        MoySP:=Sp/I;
                IF (I>0) Then
                BEGIN
                MoyT:= ST/I;
                MoyP:=SP/I  ;
                writeln (moyT,Moyp) ;
                END
                        else
                              begin
                        writeln ('incalculable');
                END;

                  Writeln (X28);
                  writeln (XG);
                  writeln (XF);

IF (NBF>0)  THEN
begin
MoyTF :=STF/NBF;
writeln (MoyTF);
end
        ELSE
        begin
        writeln ('Incalculable');
END;
        IF (NBH>0) THEN
        BEGIN
        MoyTH :=STH/NBH;
        end
                Else
           begin
           writeln('incalcau');
           END;
           writeln (X28);

                IF (S=1) and (T>180) and (P>80) Then
                BEGIN
                XG:=XG+1;
                END;

                        IF (S=2) AND (T>85) AND (T<175) and (P>50) and (P<80) THEN
                        BEGIN
                        XF:=XF+1 ;
                        END ;
                        BEGIN
                        writeln ('sexe');
                        readln(S);
                        END;


  { TODO -oUser -cConsole Main : placez le code ici }
end.
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
11
Pour pouvoir lire l'écran avant son extension, ajoute un readln à la fin, le programme attendra que tu répondes donc que tu aies le temps de lire
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Ce code ! Pas de commentaires, variables incompréhensibles... c'est vachement pédagogique comme exercice...

Utilises l'instruction
Sleep({milliseconds}); 
pour temporiser ton application, comme expliqué dans : http://www.commentcamarche.net/forum/affich-28652668-temporisation-sous-delphi

Ça te permettra de voir le résultat de ton application avant qu'elle se ferme.

Et sinon utilises le moteur de recherche du site avant de poser une question, et quand tu postes du code, utilises les balises de codes.

Simon
Messages postés
257
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
4 août 2020
9
Salut,
bah je sais pas trop quoi dire à part c'est un grand n'importe quoi !
déja la boucle while sert à rien S n'a jamais de valeur !
Supposons qu'il manque un Readln(S) avant le while...on rentrerai dans une boucle infinie, donc faudrait un S:=0 en fin de boucle par exemple pour en sortir...
Ensuite si P ou I égal 0 on doit être sorti de la console vite fait à coup de pompe dans le... par exemple quand on arrive à R:=T/P (ouais div par 0 ca aime pas)...je suppose que déjà au début si tu initialisais P:=1 la console s'afficherait...bah peut-être :p
Après je m'arrête je regarde pas la suite...il faudrait déjà un minimum, il n'y a pas grand chose de correct pour t'aider et être constructif.
@+