Delphi > Executable > Affichage

42jordan42 - 29 nov. 2014 à 20:42
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 - 11 déc. 2014 à 16:11
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 nov. 2014 à 20:46
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.
0
Où trouver cette fonction ?


Merci
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 nov. 2014 à 21:12
Dans l'aide de ton environnement de développement ?
0
@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.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 nov. 2014 à 21:33
J'ai juste recherché "Delphi console get key" et les liens sont très prometteurs.
0
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
1 déc. 2014 à 10:41
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+
0
Lyon3emearron Messages postés 1 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 8 décembre 2014
8 déc. 2014 à 07:47
Bonjour,

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

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
8 déc. 2014 à 10:59
Brrr....
Ce programme est ensorcelé !
Ce qu'il faut, c'est un exorcisme.
0
Ouais bon merci de votre aide je ne trouverais donc jamais de solution
0
(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.
0
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
11 déc. 2014 à 15:57
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
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
Modifié par sp40 le 11/12/2014 à 11:17
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
0
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
Modifié par cs_yanb le 11/12/2014 à 16:18
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.
@+
0
Rejoignez-nous