Einzelnen Beitrag anzeigen

Smokers

Registriert seit: 4. Mai 2007
9 Beiträge
 
Delphi 7 Enterprise
 
#1

Anfänger Problem - Psychologietest

  Alt 4. Mai 2007, 09:20
Also ich habe folgendes vor / bin dabei
einen psychologie Test zu programmieren der bei einer Frage die auf eine bestimmte Weise beantworte wird, halt den Werten: „schizoid“ , „depressiv“, “hysterisch“, “zwanghaft“ und so genannten Lügenfragen.
Jedoch habe ich im Moment ein Problem das mich stutzen lässt.
Erstmal der Quellcode:

das formular wo so ziemlich außer namensabfrage und auswertung abläuft:
Delphi-Quellcode:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    label_vorname: TLabel;
    label_nachname: TLabel;
    Button1: TButton;
    label_text: TLabel;
    Button2: TButton;
    label_frage: TLabel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    schizoid,hysterisch,depressiv,luegen,zwanghaft:integer;
    Seite:integer;
    //frage:array of tfrage;
     frage: array[1..100,0..2,0..2] of string;
     dummy:integer;
  end;

var
  Form2: TForm2;

implementation

uses Unit1, Unit3;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
form1.close;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Radiobutton1.Hide;
Radiobutton2.Hide;
Radiobutton3.Hide;
Radiobutton4.Hide;
Radiobutton5.Hide;

label_text.caption:='Lieber Testteilnehmer,'+#13+#10+'Liebe Testteilnehmerin,'+#13+#10+#13+#10'dies ist ein Test, der Ihr Freizeitverhalten untersuchen wird. Ich bitte Sie, alle Fragen so zu '+#13+#10+'beantworten, dass Ihre Antworten am besten Ihrer Einstellung entsprechen. Neben jeder Frage '+#13+#10+'sehen Sie fünf Antwortmöglichkeiten. Die Kästchen dazwischen geben jeweils Zwischenwerte an,'+#13+#10+' damit Sie ihre Antworten'+#13+#10+'besser abstufen können. Lassen Sie bitte keine Frage aus und entscheiden Sie spontan, welche '+#13+#10+'Antwort am besten zu Ihnen passt.';

Frage[1,0,0]:='Bei Diskussionen halte ich mich her zurück.';
Frage[2,0,0]:='Die meisten Menschen sind mir zu neugierig.';
Frage[3,0,0]:='Ich spiele gerne Fußball.';
Frage[4,0,0]:='Ich werde bestimmt mal im Lotto gewinnen. ';


Frage[1,1,0]:='d';
Frage[2,1,0]:='s.';
Frage[3,1,0]:='z';
Frage[4,1,0]:='dummy';








end;

procedure TForm2.Button2Click(Sender: TObject);
begin
case seite of

0:begin
    label_text.Caption:='';
    label_frage.caption:=frage[1,0,0];
    Radiobutton1.show;
    Radiobutton2.show;
    Radiobutton3.show;
    Radiobutton4.show;
    Radiobutton5.show;
    Seite:=seite+1;

  end;

1..4:

        begin

        if (radiobutton1.Checked=false)AND(radiobutton1.Checked=false)AND(radiobutton2.Checked=false)AND(radiobutton3.Checked=false)AND(radiobutton4.Checked=false)AND(radiobutton5.Checked=false) then
           begin
           messagedlg('Du hast keine Auswahl getroffen',mterror,[mbok],1);
           abort;
        end

        else

          label_frage.caption:=frage[seite+1,0,0];
          if radiobutton1.Checked=true then
            begin
            if frage[(seite+1),1,0]= 'dthen depressiv:=depressiv+2 ;
            if frage[(seite+1),1,0]= 'sthen schizoid:=schizoid+2 ;
            if frage[(seite+1),1,0]= 'zthen zwanghaft:=zwanghaft+2 ;
            if frage[(seite+1),1,0]= 'hthen hysterisch:=hysterisch+2 ;
            if frage[(seite+1),1,0]= 'lthen luegen:=luegen+1 ;
            if frage[(seite+1),1,0]= 'dummythen dummy:=dummy+0 ;
            end;

            if radiobutton2.Checked=true then
            begin
            if frage[seite+1,1,0]= 'dthen depressiv:=depressiv+1 ;
            if frage[seite+1,1,0]= 'sthen schizoid:=schizoid+1 ;
            if frage[seite+1,1,0]= 'zthen zwanghaft:=zwanghaft+1 ;
            if frage[seite+1,1,0]= 'hthen hysterisch:=hysterisch+1 ;
            if frage[seite+1,1,0]= 'lthen luegen:=luegen+1 ;
            if frage[seite+1,1,0]= 'dummythen dummy:=dummy+0 ;
            end;

          messagedlg('Depressiv:'+inttostr(depressiv)+', schizoid:'+inttostr(schizoid)+',zwanghaft:'+inttostr(zwanghaft)+',lügen:'+inttostr(luegen)+'.',mtinformation,[mbok],1);
          Radiobutton1.Checked:=false;
          Radiobutton2.Checked:=false;
          Radiobutton3.Checked:=false;
          Radiobutton4.Checked:=false;
          Radiobutton5.Checked:=false;
          seite:=seite+1;


        end;

5:


      begin
      form2.Hide;
      form3.show;
        form3.label_depressiv.caption:=inttostr(depressiv);
        form3.label_schizoid.caption:=inttostr(schizoid);
        form3.label_zwanghaft.caption:=inttostr(zwanghaft);
        form3.label_hysterisch.caption:=inttostr(hysterisch);
        //form3.label_luegen.caption:=inttostr(luegen);



      end;

end;




end;

end.
So das Problem was gelöst werden muss ist das beim antworten nur bei der Frage : „ frage[3,0,0] “ auch wirklich ein wert zur Variable addiert wird. Bei allen anderen Fragen nicht.


Erstmal nur wichtig das er die Ergebnisse richtig zählt....

\\\\\\\\
Zur kurzen Erläuterung :
1. ich bin absoluter Anfänger

2. ich bin Anfänger

3. ein array mit 3 dimensionen weil ich in der frage / var irgendwo die frage, die kategorie und später auch noch die gegenfrage abspeichert.
  Mit Zitat antworten Zitat