Thema: Delphi String Array Problem

Einzelnen Beitrag anzeigen

Jacer

Registriert seit: 28. Jan 2007
21 Beiträge
 
#1

String Array Problem

  Alt 2. Feb 2007, 14:47
Hallo,
ich habe ein Problem mit einem Programm wo in ein Array String-Werte eingetragen werden sollen.
Ich habe zunächst einmal ganz normal die Variablen deklariert.

Delphi-Quellcode:
var
  i : integer;
  vFrage : Array[1..5] of string;
  vAntwort: Array [1..5] of string;
Beim Start habe ich dann i als 1 definiert.

Delphi-Quellcode:
procedure TFrmMain.FormCreate(Sender: TObject);
  begin
    i:=1;
  end;
So dann habe ich auf dem Formular einen Button. Jedes Mal wenn der Button gedrückt wird passiert folgendes:

Delphi-Quellcode:
procedure TFrmMain.SBtnWeiterClick(Sender: TObject);
  begin

    case RGrFrage.ItemIndex of
      0 : begin
            vFrage[i]:= RGrFrage.Caption;
            vAntwort[i]:= RBtnFrage_1.Caption;
          end;

      1 : begin
            vFrage[i]:= RGrFrage.Caption;
            vAntwort[i]:= RBtnFrage_2.Caption;
          end;

      2 : begin
            vFrage[i]:= RGrFrage.Caption;
            vAntwort[i]:= RBtnFrage_3.Caption;
          end;
    end;

    if i=1
      then
        begin
          RGrFrage.Caption:='Frage 2';
          RBtnFrage_1.Caption:='Antwort 1';
          RBtnFrage_2.Caption:='Antwort 2';
          RBtnFrage_3.Caption:='Antwort 3';
        end

    else if i=2
      then
        begin
          RGrFrage.Caption:='Frage 3';
          RBtnFrage_1.Caption:='Antwort 1';
          RBtnFrage_2.Caption:='Antwort 2';
          RBtnFrage_3.Caption:='Antwort 3';
        end

    else if i=3
      then
        begin
          RGrFrage.Caption:='Frage 4';
          RBtnFrage_1.Caption:='Antwort 1';
          RBtnFrage_2.Caption:='Antwort 2';
          RBtnFrage_3.Caption:='Antwort 3';
        end

    else if i=4
      then
        begin
          RGrFrage.Caption:='Frage 5';
          RBtnFrage_1.Caption:='Antwort 1';
          RBtnFrage_2.Caption:='Antwort 2';
          RBtnFrage_3.Caption:='Antwort 3';
        end

    else if i=5
      then
        begin
          FrmAuswertung.LblFrage1.Caption:= vFrage[1];
          FrmAuswertung.LblFrage2.Caption:= vFrage[2];
          FrmAuswertung.LblFrage3.Caption:= vFrage[3];
          FrmAuswertung.LblFrage4.Caption:= vFrage[4];
          FrmAuswertung.LblFrage5.Caption:= vFrage[5];

          FrmAuswertung.LblAntwort1.Caption:= vAntwort[1];
          FrmAuswertung.LblAntwort2.Caption:= vAntwort[2];
          FrmAuswertung.LblAntwort3.Caption:= vAntwort[3];
          FrmAuswertung.LblAntwort4.Caption:= vAntwort[4];
          FrmAuswertung.LblAntwort5.Caption:= vAntwort[5];

          FrmAuswertung.Show;
          FrmMain.Hide;
        end;

    inc(i);


  end;
Es soll also jedes Mal wenn der Button gedrückt wird, geprüft werden welcher RadioButton aus der RadioGroup aktiviert wurde, die Frage sowie die gewählte Antwort in der Variable gespeichert werden. Danach wird (je nachdem welche Wert i gerade hat) die Frage bzw die Antworten geändert. Erreicht die Variable i den Wert 5, sollen in dem folgenden Formular (FrmAuswertung) die Fragen&Antworten in die entsprechenden Labels eingetragen werden. Die passenden Unit dazu steht auch unter den Uses-Befehlen.
Ich habe zum Test einmal nicht die Variablen zum Schluß in dem folgenden Formular ausgeben lassen sondern in dem Gleichen. Dies ging ebenfalls nicht. Der Fehler muss also schon in der Deklaration bzw Speicherung der Variablen in der case-Anweisung liegen.

Hoffe ihr könnt mir helfen
  Mit Zitat antworten Zitat