Einzelnen Beitrag anzeigen

Smokers

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

Re: Anfänger Problem - Psychologietest

  Alt 6. Mai 2007, 00:33
Also hab das jetzt so einigermaßen umgesetzt.
Allerdings bekomme ich nachdem ich ich frage 5 beendet hab einen Fehler der das Programm terminiert.

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;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    //Tfrage = array[0..1] of string;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
      Seite:integer;
      dummy:integer;
      i:integer;
      e_depressiv,e_zwanghaft,e_hysterisch,e_dummy,e_schizoid:integer;

  end;

var
  Form2: TForm2;
  type TFragen = record
  Frage: string;
  Kategorie: byte;
  IndexDerFrageZumGegenrechnen:integer;
  GewaehlteAntwort:byte;
end;

  const
       depressiv = 0;
       hysterisch = 1;
       zwanghaft = 2;
       schizoid = 3;
       dummy = 4;

var Fragen: array [1..50] of TFragen;



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;
  label4.Hide;
  label3.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.';

  fragen[1].Frage:='Bei Diskussionen halte ich mich her zurück. ';
  fragen[1].Kategorie:= 0 ;
  fragen[2].Frage:='Die meisten Menschen sind mir zu neugierig. ';
  fragen[2].Kategorie:= 3 ;
  fragen[3].Frage:='Ich habe viele Klamotten im Schrank, die mir zum Anziehen zu schade sind.';
  fragen[3].Kategorie:= 2 ;



end;





procedure TForm2.Button2Click(Sender: TObject);
var i :integer;
begin

 
   case seite of

0: begin
       label_text.Caption:='';
       label_frage.caption:=fragen[1].Frage;
       Radiobutton1.show;
       Radiobutton2.show;
       Radiobutton3.show;
       Radiobutton4.show;
       Radiobutton5.show;
       label3.Show;
       label4.Show;
       Seite:=seite+2;

     end;

1..3:
      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
          begin
           label_frage.caption := fragen[seite].Frage;


            if radiobutton1.Checked then fragen[seite].GewaehlteAntwort := 2;
            if radiobutton2.Checked then fragen[seite].GewaehlteAntwort := 1;
            if radiobutton3.Checked then fragen[seite].GewaehlteAntwort := 0;
            if radiobutton4.Checked then fragen[seite].GewaehlteAntwort := 0;
            if radiobutton5.Checked then fragen[seite].GewaehlteAntwort := 0;

            radiobutton1.Checked := false;
            radiobutton2.Checked := false;
            radiobutton3.Checked := false;
            radiobutton4.Checked := false;
            radiobutton5.Checked := false;
            seite:= seite +1;
          end;
      end;

4:
     begin
         while i < 4 do
          if fragen[i].Kategorie= 0 then e_depressiv := e_depressiv + fragen[i].GewaehlteAntwort; // irgendwo hier
          if fragen[i].Kategorie= 1 then e_hysterisch := e_hysterisch + fragen[i].GewaehlteAntwort;//muss der Fehler
          if fragen[i].Kategorie= 2 then e_zwanghaft := e_zwanghaft + fragen[i].GewaehlteAntwort;//liegen
          if fragen[i].Kategorie= 3 then e_schizoid := e_schizoid + fragen[i].GewaehlteAntwort;
          if fragen[i].Kategorie= 4 then e_dummy := e_dummy + fragen[i].GewaehlteAntwort;
          i:=i+1
          end;
  End;


messagedlg('e_depressiv='+inttostr(e_depressiv)+
':: e_hysterisch='+inttostr(e_hysterisch)+
'::e_zwanghaft ='+inttostr(e_zwanghaft)+
':: e_schizoid ='+inttostr(e_schizoid)+
'::',mtinformation,[mbok],1);


end;



end.
Ich hoffe es is auch einigermaßen den wünschen formatiert..
  Mit Zitat antworten Zitat