Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Créer Questionnaire [ Divers / Débutant(e) ] (kopierreko)

mercredi 23 avril 2008 à 14:10:43 | Créer Questionnaire

kopierreko

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

mercredi 23 avril 2008 à 14:49:06 | Re : Créer Questionnaire

JulioDelphi

Membre Club Administrateur CodeS-SourceS
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

mercredi 23 avril 2008 à 15:02:22 | Re : Créer Questionnaire

kopierreko

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

mercredi 23 avril 2008 à 15:20:26 | Re : Créer Questionnaire

Shai

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 ...

mercredi 23 avril 2008 à 15:52:13 | Re : Créer Questionnaire

Sat83

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.



mercredi 23 avril 2008 à 16:06:33 | Re : Créer Questionnaire

Sat83

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.

vendredi 25 avril 2008 à 17:00:33 | Re : Créer Questionnaire

kopierreko

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 !!!


vendredi 25 avril 2008 à 17:09:10 | Re : Créer Questionnaire

kopierreko

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 ^^

vendredi 25 avril 2008 à 18:03:03 | Re : Créer Questionnaire

Sat83

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 .

vendredi 25 avril 2008 à 18:18:31 | Re : Créer Questionnaire

Sat83

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.


1 2 3

Cette discussion est classé dans : créer, question, questionnaire


Répondre à ce message

Sujets en rapport avec ce message

Questionnaire BDD: Facile et Rapide... [ par Encore1ben ] Salut à tous,Bon, voilà, je me pose plusieurs questions sur la base de donnée à choisir pour un futur projet perso. Alors plutôt que vous assomer de q Comment créer un tableau de bits à 1 si dans une zone ? [ par cerber943 ] Bonjour, Ce message est une sous-question de mon poste http://www.delphifr.com/infomsg_RECHERCHE-ALGORITHME-POUR-SCANNER-IMAGE-SUR-ZONE-DEFINIE_832659 Outlook Security Manager...supprimé???? [ par othland ] slt tlm;il y a 10 jours de cela, j'ai posé une question sur le Outlook Security Manager, en disant si quelqu'un l'a déjà téléchargé, ou bien il a un l créer un ActiveX [ par askil2000 ] Bonjour, je travail avec delphi 7 version entreprise, et souhaiterais créer un ActiveX ou Contrôle ActiveX pour une application web simple (une fiche, Threads et events [ par Danonne ] Salut a tous.Après de nombreuses recherches sur divers sites et forums, je n'ai pas réussi à trouver une réponse (claire et précise) à ma question exi question sur les composant "combobox "et "Maskedit" [ par MOUNI28 ] Bonjour,1-comment déplacer le focus d'un combobox vers un autre?2-comment tester si le champs d'un "maskedit" est vide ou non ?(c.a.d quand j'oublie d [débutant] Comment créer un setup ? [ par amel2006 ] amel2006 bonjour j'ai réaliser un logiciel qui utilise une base de donnée paradox je veux le rendre instalable sur un Connaitre la taille de l'écran [ par PHIL63 ] Bonjour à tous,J'ai une petite question :Est-il possible de connaitre la taille de l'écran ( 15", 17" etc) et/ou son rapport 16/10 ou 4/3 avec des API [Question de noob] Comment on declare une API en Delphi ? [ par ratala ] Bonsoir :)Je programme depuis longtemps en VB et j'ai eu l'idée de passer au delphi.Quelqun pourrait me dire svp comment on declare une API ?Et autre Merci de mettre un titre explicite à la question ! >:/ [ par cyber37 ] bonjour es ce que c'est normale que quand j'ouvre la sources du programe chat server clien qui se trouve ici : http://diabloporc.free.fr/creations.php


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.