|
Trouver une ressource
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)
Informations & options pour cette discussion
|
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
|
|
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.
|
|
|
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
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|