1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| unit U_qcm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, DBTables, ExtCtrls, DBCtrls, Grids,
DBGrids, Mask;
type
TF_qcm = class(TForm)
Sortir: TBitBtn;
Rd11: TRadioButton;
Rd12: TRadioButton;
Label1: TLabel;
Label2: TLabel;
Rd21: TRadioButton;
Rd22: TRadioButton;
Rd23: TRadioButton;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Table1: TTable;
DataSource1: TDataSource;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Table1Code: TStringField;
Table1V_rep: TStringField;
Table1Util: TStringField;
Label3: TLabel;
DBEdit1: TDBEdit;
Label4: TLabel;
DBEdit2: TDBEdit;
Label5: TLabel;
Edit1: TEdit;
Rd3: TRadioButton;
procedure SortirClick(Sender: TObject);
procedure ena(b:boolean);
procedure Rd11Click(Sender: TObject);
procedure Rd12Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Rd3Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
F_qcm: TF_qcm;
implementation
{$R *.dfm}
// procedure qui permet un sel choix parmi les 3 propositions
procedure TF_qcm.ena(b:boolean);
begin
Rd11.enabled:=b;
Rd12.enabled:=not b;
Rd3.enabled:=not b;
end;
procedure TF_qcm.SortirClick(Sender: TObject);
begin
F_qcm.Close;
end;
//pour une seul question
//choix n:=1
procedure TF_qcm.Rd11Click(Sender: TObject);
begin
ena(true);
table1.First;
table1.edit;
table1.FieldByName('util').asstring:='1'; //enregistrement du choix d'utilisateur
table1.Post;
end;
//choix :=2
procedure TF_qcm.Rd12Click(Sender: TObject);
begin
ena(true);
table1.First;
table1.edit;
table1.FieldByName('util').asstring:='2';
table1.Post;
end;
var i,s:integer;
//choix n:=3
procedure TF_qcm.Rd3Click(Sender: TObject);
begin
ena(true);
table1.First;
table1.edit;
table1.FieldByName('util').asstring:='3';
table1.Post;
end;
//code ce correction du qcm
procedure TF_qcm.BitBtn2Click(Sender: TObject);
begin
s:=0;
table1.First;
for i:=1 to 2 do
begin
if(((table1.FieldByName('V_rep').asstring=strtoint(table1.FieldByName('util').asstring))) then
begin
s:=s+1;
table1.Next;
end;
end;
end;
end. |