Créer Questionnaire [Résolu]

kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 23 avril 2008 à 14:10 - Dernière réponse : Sat83 172 Messages postés mardi 11 novembre 2003Date d'inscription 13 octobre 2008 Dernière intervention
- 5 mai 2008 à 17:59
Bonjour tout le monde;
Je dois créer un questionnaire en deplhi, mais par étape: C-A-D
1ère question, je rempli le formulaire, et là, un message apparait me disant si j'ai bon ou si j'ai faux, et en même temps, là fenêtre se quitte et passe à la question d'après.
Comment procéder ?
Merci
Afficher la suite 

Votre réponse

23 réponses

Meilleure réponse
Sat83 172 Messages postés mardi 11 novembre 2003Date d'inscription 13 octobre 2008 Dernière intervention - 25 avril 2008 à 18:49
3
Merci
C'est mon jour de bonté, mais le but c'est que tu trouve par toi même, pas que quelqu'un d'autre fasse le programme

Voilà quelques amélioration :

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    EdtReponse: TEdit;
    LblQuestion: TLabel;
    BtnValid: TButton;
    BtnQuit: TButton;
    procedure BtnValidClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BtnQuitClick(Sender: TObject);
  private
    { Private declarations }
       listQuestion, listReponse : TStringList ;
       index : integer;
       cptBonneRep : integer ;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BtnValidClick(Sender: TObject);
var nbrQuestion   : integer ;
    messageTmp  : string ;
begin
    if ( uppercase( EdtReponse.Text ) = uppercase( listReponse.strings[index] )) then
    begin
       Application.MessageBox('FELICITATION, VOUS AVEZ LA BONNE REPONSE!','RESULTAT',MB_ICONINFORMATION + MB_OK) ;
       cptBonneRep := cptBonneRep + 1 ; // on compte les bonnes reponses
    end else
    begin
       messageTmp := 'DOMMAGE, VOUS N''AVEZ PAS LA BONNE REPONSE!'
                   + #10#13  //on saute une ligne
                   + 'La bonne reponse était : '
                   + listReponse.strings[index] ; //on construit le message

       Application.MessageBox(PChar(messageTmp),'RESULTAT SUR CETTE QUESTION',MB_ICONINFORMATION + MB_OK) ;

    end;

    index := index+1 ; //on passe a laquestion suivante

// recupere le nombre de question (<=> le nombre d'élement dans la liste)
    nbrQuestion := listQuestion.Count ;

    if index >= nbrQuestion then   // on verifie si il reste des questions
    begin
       messageTmp := 'Vous obtenez une note de : ' + IntToStr(cptBonneRep) + '/' + IntToStr(nbrQuestion) ;
       Application.MessageBox( PChar(messageTmp) ,'RESULTAT FINAL',MB_ICONINFORMATION + MB_OK) ;
       BtnValid.Enabled := false ; // on desactive le bouton car il n'y a plus de questions
    end else
    begin
       LblQuestion.caption := listQuestion.strings[index] ; //on l'affiche
       EdtReponse.Text := '' ; //on efface la reponse précedante
    end ;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  listQuestion := TStringList.Create; //on creer la liste de questions
  listReponse := TStringList.Create;  // on creer la liste de reponses
  listQuestion.LoadFromFile('C:\question.txt');  //on charge depuis le fichier
  listReponse.LoadFromFile('C:\reponse.txt');    //on charge depuis le fichier
  index := 0;
  LblQuestion.caption := listQuestion.strings[index];
  cptBonneRep := 0 ;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  listQuestion.Free;  //on detruit les listes
  listReponse.Free;
end;

procedure TForm1.BtnQuitClick(Sender: TObject);
begin
  Close ; // on quitte le programme
end;

end.

Merci Sat83 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de Sat83
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention - 23 avril 2008 à 14:49
0
Merci
Où en es-tu dans l'avancée de ce code ?
Tu peux nous montrer un morceau ?
Si tu n'as encore rien fait, et que tu attends une solution ou un programme tout fait, passe ton chemin.
merci
Commenter la réponse de JulioDelphi
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 23 avril 2008 à 15:02
0
Merci
Ben pour l'instant j'ai testé avec les frames et tout ça mais je patoge ...

J'ai pensé à quand le message apparait pour dire si on a bon, en cliquant sur continuer, la fenêtre se ferme, celle avec la question aussi et une autre s'ouvre ac la question suivante, mais je sais pas du tout comment je peux procéder

Voilà mon code:

unit Unit11;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    valid: TButton;
    Label1: TLabel;
    procedure validClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TForm2 = class(TForm)
    Edit1: TEdit;
    valid: TButton;
    Label1: TLabel;

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm1.validClick(Sender: TObject);
begin
TForm.Create(nil);
if Edit1.Text='CO2' then //Si le texte de l'edit est "delphi" alors...
ShowMessage('Exelent ! Vous pouvez passer à la question suivante !') //On affiche un message indiquant que le mot de passe est correct

else if Edit1.Text='co2' then //Si le texte de l'edit est "delphi" alors...
ShowMessage('Exelent ! Vous pouvez passer à la question suivante !') //On affiche un message indiquant que le mot de passe est correct

else //Sinon...
ShowMessage('Mot de passe incorrect !'); //On affiche un message indiquant que le mot de passe est incorrect

end;

end.

^^
Merci
Commenter la réponse de kopierreko
cs_Shai 51 Messages postés mardi 8 octobre 2002Date d'inscription 21 décembre 2011 Dernière intervention - 23 avril 2008 à 15:20
0
Merci
Ah, l'éditeur avancé, il l'est surtout en bug,

bon, plus court, ce sujet "http://www.developpez.net/forums/showpost.php?p=2953247&postcount=12" devrait t'intéresser, il s'appuie sur la boucle Run et les évènements pour gérer l'ensemble d'un questionnaire, mon exemple est en dur, mais avec un peu d'imagination on peut lire un fichier XML contenant les questions et les comportement entre les questions ...
Commenter la réponse de cs_Shai
Sat83 172 Messages postés mardi 11 novembre 2003Date d'inscription 13 octobre 2008 Dernière intervention - 23 avril 2008 à 15:52
0
Merci
Un point de départ simple pour commencer :

- tu crée deux fichier contenant la liste des question (question.txt) et la liste des reponses (reponse.txt)
- sur ta forme tu place un label, un edit et un bouton
- en variable globale (ou mieux en donnée membre privée de ta classeTForm1 si tu sais ce que c'est) tu creé:
    >2 TStringList listQuestion et listReponse
    >1 entier index

    var listQuestion, listReponse : TStringList ;
        index : Integer ;

- dans le OnCreate de ta Form (tu double clique dessus) tu charge ta liste de question/reponse:

    listQuestion := TStringList.Create; //on creer la liste de questions
    listReponse := TStringList.Create;  // on creer la liste de reponses
    listQuestion.LoadFromFile('C:\MonDossier\question.txt'); //on charge depuis le fichier  

    listReponse.LoadFromFile('C:\MonDossier\reponse.txt')    //on charge depuis le fichier 
    index := 0 ;
    label1.caption = listQuestion.strings[index] ;

- dans la fonction de ton bouton :

    if ( uppercase( Edit1.Text ) = uppercase( listReponse.strings[index] )) then
       ShowMessage('Bonne reponse')
    else
       ShowMessage('Mauvaise reponse ');

    index := index + 1 ;  //on passe a laquestion suivante
    label1.caption = listQuestion.strings[index] ; //on l'affiche
    Edit1.Text = '' ; /on efface la reponse précedante

- dans le OnDestroy de ta Form (je te laisse cherché comment le créer)

//on detruit ce qu'on a creer ( un Create implique un Free qqpart dans le code )
    listQuestion.Free;  //on detruit les listes
  listReponse.Free; 

Cet exemple ne montre evidemment pas la meilleurs manière de s'y prendre pour faire ce que tu veux faire, mais ca propose une solution simple a mettre en oeuvre, pas trop difficile a comprendre (je pense) et facilement améliorable, même avec peux de connaissance (tu peux par exemple créer des fonctions pour les trucs répétitifs, compté les bonnes reponses, etc...).

Cet methode a pas mal de defaut (par exmeple dans tes fichiers les question/reponses doivent parfaitement correspondre, sinon ca marche pas), mais je pense que ca te fera une premiere approche.
Commenter la réponse de Sat83
Sat83 172 Messages postés mardi 11 novembre 2003Date d'inscription 13 octobre 2008 Dernière intervention - 23 avril 2008 à 16:06
0
Merci
Ah oui, il va de soit que ce que je t'ai proposé n'est qu'une ebauche, tu va vite tombé sur des problèmes et exceptions (fichier non trouvé, indice de liste hors limite, etc...).

Le but c'est que tu prenne en compte ces problèmes quand tu tombera dessus, et tenté de les resoudres par toi même.

Et petit a petit tu améliorera ton application en ajoutant des tests et des protections evitant divers plantages possible.

Bon courage.
Commenter la réponse de Sat83
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 25 avril 2008 à 17:00
0
Merci
Bon, j'ai cherché longtemps ( qqs heures ) e je n'ai pas trouvé le moyen de bouclr tout ça !

Voici mon code ...

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }

  public
    { Public declarations }
  end;

var
  Form1: TForm1;
       listQuestion, listReponse : TStringList ;
        index : Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
listQuestion := TStringList.Create; //on creer la liste de questions
    listReponse := TStringList.Create;  // on creer la liste de reponses
    listQuestion.LoadFromFile('C:\1-Pierre\9-Programmation\Delphi\Mr DETRE\questions\questions.txt'); //on charge depuis le fichier
    listReponse.LoadFromFile('C:\1-Pierre\9-Programmation\Delphi\Mr DETRE\questions\reponses.txt');    //on charge depuis le fichier
    index:=0;
    label1.caption := listQuestion.strings[index];
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if ( uppercase( Edit1.Text ) = uppercase( listReponse.strings[index] )) then
       ShowMessage('Bonne reponse')
    else
       ShowMessage('Mauvaise reponse ');

    index:=index+1;  //on passe a laquestion suivante
    label1.caption := listQuestion.strings[index] ; //on l'affiche
    Edit1.Text := '' ; //on efface la reponse précedante

    //on detruit ce qu'on a creer ( un Create implique un Free qqpart dans le code )
  listQuestion.Free;  //on detruit les listes
  listReponse.Free;
end;

end.

Et je voudrais savoir aussi comment éviter que les textes mauvaise réponse et bonne réponse s'affiche dans un fenêtre appellée project1

Merci pour tout, grâce à vous, je comprend des tas de choses que je n'avais pas compris avant !!!
Commenter la réponse de kopierreko
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 25 avril 2008 à 17:09
0
Merci
Bon je rectifie, j'ai trouvé ^^

Voici mon code:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }

  public
    { Public declarations }
  end;

var
  Form1: TForm1;
       listQuestion, listReponse : TStringList ;
        index : Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
listQuestion := TStringList.Create; //on creer la liste de questions
    listReponse := TStringList.Create;  // on creer la liste de reponses
    listQuestion.LoadFromFile('C:\1-Pierre\9-Programmation\Delphi\Mr DETRE\questions\questions.txt'); //on charge depuis le fichier
    listReponse.LoadFromFile('C:\1-Pierre\9-Programmation\Delphi\Mr DETRE\questions\reponses.txt');    //on charge depuis le fichier
    index:=0;
    label1.caption := listQuestion.strings[index];
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if ( uppercase( Edit1.Text ) = uppercase( listReponse.strings[index] )) then
       ShowMessage('Bonne reponse')
    else
       ShowMessage('Mauvaise reponse ');

    index:=index+1;  //on passe a laquestion suivante
    label1.caption := listQuestion.strings[index] ; //on l'affiche
    Edit1.Text := '' ; //on efface la reponse précedante
end;

end.

Je voudrais juste savoir comment afficher l'apréciation dans une fenêtre nommé apréciations
^^
Merci ^^
Commenter la réponse de kopierreko
Sat83 172 Messages postés mardi 11 novembre 2003Date d'inscription 13 octobre 2008 Dernière intervention - 25 avril 2008 à 18:03
0
Merci
Pour choisir le titre de ton message d'appreciation tu peux utiliser :

Application.MessageBox('MESSAGE', 'TITRE MESSAGE', MB_OK);

sinon regarde du coté de MessageDlg dans l'aide .
Commenter la réponse de Sat83
Sat83 172 Messages postés mardi 11 novembre 2003Date d'inscription 13 octobre 2008 Dernière intervention - 25 avril 2008 à 18:18
0
Merci
Avec une icône en plus :

Application.MessageBox('blablablablablablablablablabla','TITRE DU MESSAGE',MB_ICONINFORMATION + MB_OK) ;

Et n'oublis pas de détruire les TStringList que tu a crées, c'est très important !

Dans l'inspecteur d'objet de ta Form1, tu va dans l'onglet Evenement, tu va dans OnDestroy et tu double clique, ca te creera une procedure:

procedure TForm1.FormDestroy(Sender: TObject);
begin
  listQuestion.Free;  //on detruit les listes
  listReponse.Free;
end;

Et on conseil lorsque tu developpe, pense a renommer tes composant en leurs donnant des noms significatifs (là avec 3 composant ça va, mais imagine un projet avec des centaine de composant). Par exemple LblQuestion, EdtReponse, BtnValid (ce n'est que des proposition, a toi de trouvé un nom qui te semble parlant pour tes composants.

Et pour la déclaration de tes variables, plutot que de les déclaré en variable globale (comme tu l'as fait), tu peux les déclaré en donnée membre de ta classe :

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
          listQuestion, listReponse : TStringList ;
          index : Integer;

  public
    { Public declarations }
  end;

Bon courage.
Commenter la réponse de Sat83
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 25 avril 2008 à 18:36
0
Merci
Merci beaucoups !!!

Encore deux choses:
j'aimerai afficher le nombre de points, donc j'ai fait:

var
pt: Integer;

puis

procedure TForm1.Button1Click(Sender: TObject);
begin
if ( uppercase( Edit1.Text ) = uppercase( listReponse.strings[index] )) then
Application.MessageBox('Bonne réponse', 'Apréciation', MB_OK)

    else
       Application.MessageBox('Mauvaise réponse', 'Apréciation', MB_OK);

if ( uppercase( Edit1.Text ) = uppercase( listReponse.strings[index] )) then
pt:=pt+1
else
pt:=pt;

    index:=index+1;  //on passe a laquestion suivante
    label1.caption := listQuestion.strings[index] ; //on l'affiche
    Edit1.Text := '' ; //on efface la reponse précedante

end;

et là je voulai les afficher dans un label et ça marche pas ><

Et encore une chose, quand il n'y a plus de questions, le prog fait erreur ... comment la contourner ( j'ai fait des tests mais en vain ... )

THX
Commenter la réponse de kopierreko
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 25 avril 2008 à 18:54
0
Merci
Je t'admire ... Comment te remercier ...
Commenter la réponse de kopierreko
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 25 avril 2008 à 19:12
0
Merci
Mais y a un pb, c'est que ça marche aps du tout ><
Commenter la réponse de kopierreko
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 25 avril 2008 à 19:18
0
Merci
Si c'est bon j'ai corrigé ton script
Parfait merci infiniment !!
Commenter la réponse de kopierreko
Sat83 172 Messages postés mardi 11 novembre 2003Date d'inscription 13 octobre 2008 Dernière intervention - 26 avril 2008 à 11:19
0
Merci
Si c'est bon j'ai corrigé ton script




Juste pour infos, qu'a tu corrigé dans mon code? parce que je l'ai tester et a prioris il n'y avait pas d'erreur?
Commenter la réponse de Sat83
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 3 mai 2008 à 11:04
0
Merci
Il ne voulait pas de tes variables ^^

Mais là c'est bon ça marche mais ça marche pas par ex si j'appuie sur la touche entrée pour envoyer la donnée ...
Commenter la réponse de kopierreko
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 4 mai 2008 à 11:42
0
Merci
Quelqu'un sait comment faire ? j'ai chercher des trucs sur le net mais ça ne fonctionne aps ....
Commenter la réponse de kopierreko
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention - 4 mai 2008 à 12:39
0
Merci
dans le OnKeyPress de l'Edit en question tu peux faire un :

if Key=#32 then //#32 = entrée - #27=echap etc (cherche par google)
 begin
  ...
 end;

c'est ça que tu veux ?
Commenter la réponse de JulioDelphi
kopierreko 140 Messages postés mercredi 12 mars 2008Date d'inscription 10 juillet 2010 Dernière intervention - 4 mai 2008 à 20:22
0
Merci
C'est bien ça que je veux mais ça ne marche pas ><.
Mon code:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MPlayer, StdCtrls, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    EdtReponse: TEdit;
    LblQuestion: TLabel;
    BtnValid: TButton;
    BtnQuit: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Image1: TImage;
    procedure BtnValidClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BtnQuitClick(Sender: TObject);
    procedure OnShow(Sender: TObject; var Key: Char);
  private
    { Private declarations }
      
  public
    { Public declarations }

  end;

  const

  myMp3Location : string ='templates\musique.mp3';

var
  media:TMediaPlayer;
  loop : Boolean {Global Variable};
  Form1: TForm1;
  listQuestion, listReponse : TStringList ;
       index : integer;
       cptBonneRep : integer ;
       fichier: textfile;
       Shift: TShiftState;
       Key: Word;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  listQuestion := TStringList.Create; //on creer la liste de questions
  listReponse := TStringList.Create;  // on creer la liste de reponses
  listQuestion.LoadFromFile('templates\chmnd.data');  //on charge depuis le fichier
  listReponse.LoadFromFile('templates\drxfm.data');    //on charge depuis le fichier
  index := 0;
  LblQuestion.caption := listQuestion.strings[index];
  cptBonneRep := 0 ;
end;

procedure TForm1.BtnValidClick(Sender: TObject);
var nbrQuestion   : integer ;
    messageTmp  : string ;
begin
    if ( uppercase( EdtReponse.Text ) = uppercase( listReponse.strings[index] )) then
    begin
       Application.MessageBox('FELICITATION, VOUS AVEZ LA BONNE REPONSE!','RESULTAT',MB_ICONINFORMATION + MB_OK) ;
       cptBonneRep := cptBonneRep + 1 ; // on compte les bonnes reponses
    end else
    begin
       messageTmp := 'DOMMAGE, VOUS N''AVEZ PAS LA BONNE REPONSE!'
                   + #10#13  //on saute une ligne
                   + 'La bonne reponse était : '
                   + listReponse.strings[index] ; //on construit le message

       Application.MessageBox(PChar(messageTmp),'RESULTAT SUR CETTE QUESTION',MB_ICONINFORMATION + MB_OK) ;

    end;

    index := index+1 ; //on passe a laquestion suivante

// recupere le nombre de question (<=> le nombre d'élement dans la liste)
    nbrQuestion := listQuestion.Count ;

    if index >= nbrQuestion then   // on verifie si il reste des questions
    begin
       messageTmp := 'Vous obtenez une note de : ' + IntToStr(cptBonneRep) + '/' + IntToStr(nbrQuestion) ;
       Application.MessageBox( PChar(messageTmp) ,'RESULTAT FINAL',MB_ICONINFORMATION + MB_OK) ;
       BtnValid.Enabled := false ; // on desactive le bouton car il n'y a plus de questions
    end else
    begin
       LblQuestion.caption := listQuestion.strings[index] ; //on l'affiche
       EdtReponse.Text := '' ; //on efface la reponse précedante
    end ;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  listQuestion.Free;  //on detruit les listes
  listReponse.Free;
end;

procedure TForm1.OnShow(Sender: TObject; var Key: Char);
  var nbrQuestion   : integer ;
    messageTmp  : string ;
begin
  media := TMediaPlayer.Create(form1);
  media := TMediaPlayer.CreateParented(form1.Handle);
  media.FileName := myMp3Location;
  media.Open;
  media.Play;
begin
 if Key=#32 then
 begin
    if ( uppercase( EdtReponse.Text ) = uppercase( listReponse.strings[index] )) then
    begin
       Application.MessageBox('FELICITATION, VOUS AVEZ LA BONNE REPONSE!','RESULTAT',MB_ICONINFORMATION + MB_OK) ;
       cptBonneRep := cptBonneRep + 1 ; // on compte les bonnes reponses
    end else
    begin
       messageTmp := 'DOMMAGE, VOUS N''AVEZ PAS LA BONNE REPONSE!'
                   + #10#13  //on saute une ligne
                   + 'La bonne reponse était : '
                   + listReponse.strings[index] ; //on construit le message

       Application.MessageBox(PChar(messageTmp),'RESULTAT SUR CETTE QUESTION',MB_ICONINFORMATION + MB_OK) ;

    end;

    index := index+1 ; //on passe a laquestion suivante

// recupere le nombre de question (<=> le nombre d'élement dans la liste)
    nbrQuestion := listQuestion.Count ;

    if index >= nbrQuestion then   // on verifie si il reste des questions
    begin
       messageTmp := 'Vous obtenez une note de : ' + IntToStr(cptBonneRep) + '/' + IntToStr(nbrQuestion) ;
       Application.MessageBox( PChar(messageTmp) ,'RESULTAT FINAL',MB_ICONINFORMATION + MB_OK) ;
       BtnValid.Enabled := false ; // on desactive le bouton car il n'y a plus de questions
    end else
    begin
       LblQuestion.caption := listQuestion.strings[index] ; //on l'affiche
       EdtReponse.Text := '' ; //on efface la reponse précedante
    end ;
end;
end;
end;

procedure TForm1.BtnQuitClick(Sender: TObject);
begin
media.Stop;
application.terminate;
end;

end.
Commenter la réponse de kopierreko
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention - 4 mai 2008 à 20:33
0
Merci
J'ai dit "dans le OnKeyPress de l'edit en question" et pas "dans le onshow de ta form" >_<'
Commenter la réponse de JulioDelphi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.