Einzelnen Beitrag anzeigen

Fredmaster

Registriert seit: 25. Jun 2012
7 Beiträge
 
#17

AW: Vokabel Trainer ! Hilfe

  Alt 26. Jun 2012, 23:17
Danke für die vielen Antworten! Ich habe mich nun nach reifer Überlegung dazu entschieden das Program doch mithilfe einer listbox zu gestalten! Dies klappt auch schon fast mit allen Funktionen. Hier ist mein jetziger code...Nur ein problem hab ich noch und zwar bei dem submit button...hier ist der fehler er sagt dass int und string nicht zusammen passen, wenn ich jedoch den string umwandle hat er tstring und stirng pobleme? irgendwelche ideen?


Hier die Fehlerstelle

Delphi-Quellcode:
 If (radiogroup1.items:=a_richtig[i+3]) or (l_loesung.text:=a_richtig[i]) then // richtige Antwort
           begin
                l_checkup.caption:='Richtig!';
                l_checkup.font.color:=clgreen;
           end
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TVokabeltrainer = class(TForm)
    b_next: TButton;
    b_Cheat: TButton;
    b_submit: TButton;
    l_frage: TLabel;
    l_checkup: TLabel;
    l_antwort: TLabel;
    l_losungdirekt: TLabel;
    RadioGroup1: TRadioGroup;
    OpenDialog1: TOpenDialog;
    l_loesung: TEdit;
    ListBox1: TListBox;
    l_Check: TLabel;
    VocListe: TButton;
    l_cheat: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure b_submitClick(Sender: TObject);
    procedure b_nextClick(Sender: TObject);
    procedure b_CheatClick(Sender: TObject);
    procedure VocListeClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

const
  max=8;
  
var
  Vokabeltrainer: TVokabeltrainer;
  datei: TextFile;
  DateiName: string;
  a_vok: Array[1..max] of String; // hier werden die Vokabeln/Fragen gespeichert
  a_antwort: Array[1..max] of String; // hier werden die Antwortmöglichkeiten gespeichert
  a_richtig: Array[1..max] of String;
  i: Integer;



implementation

{$R *.dfm}

procedure TVokabeltrainer.FormCreate(Sender: TObject);

begin // Vokabeln, Antwortmöglichkeiten und richtige Antworten werden hier ausgegeben

       if MessageDlg('Bitte wählen sie jetzt eine Vokabel-Liste zum Üben aus',mtInformation, [mbOK], 0) =mrYES then
       l_cheat.Visible:=false; //zeigt die Cheat option NOCH nicht an

       if OpenDialog1.Execute then { Dialog zum Dateiöffnen anzeigen }

      begin
       AssignFile(Datei, OpenDialog1.FileName); { Datei ausgewählt }
       Reset(datei);
       Readln (Datei, a_vok[i]); //Readln(datei, dateiname); { Erste Zeile der Datei lesen }
       Readln (Datei, a_antwort[i]);
       Readln (Datei, a_antwort[i+1]);
       Readln (Datei, a_antwort[i+2]);
       Readln (Datei, a_richtig[i+3]);
        radiogroup1.items[0]:=a_antwort[i];
        radiogroup1.items[1]:=a_antwort[i+1];
        radiogroup1.items[2]:=a_antwort[i+2];
       l_frage.caption:='Übersetze ' + a_vok[i];

     end;



end;

procedure TVokabeltrainer.VocListeClick(Sender: TObject);
begin // Vokabeln, Antwortmöglichkeiten und richtige Antworten werden hier ausgegeben
       if OpenDialog1.Execute then { Dialog zum Dateiöffnen anzeigen }

       begin
          AssignFile(Datei, OpenDialog1.FileName); { Datei ausgewählt }
       Reset(datei);
       Readln (Datei, a_vok[i]); //Readln(datei, dateiname); { Erste Zeile der Datei lesen }
       Readln (Datei, a_antwort[i]);
       Readln (Datei, a_antwort[i+1]);
       Readln (Datei, a_antwort[i+2]);
       Readln (datei, a_richtig[i+3]);
        radiogroup1.items[0]:=a_antwort[i];
        radiogroup1.items[1]:=a_antwort[i+1];
        radiogroup1.items[2]:=a_antwort[i+2];
       l_frage.caption:='Übersetze ' + a_vok[i];
     end;


end;


procedure TVokabeltrainer.b_submitClick(Sender: TObject); // überprüft die Antwort aus dem Auswahlmenü
begin


     If (Radiogroup1.itemindex=-1) and (l_loesung.text='') then // keine Antwort angegeben
     begin
           l_checkup.caption:='Bitte eine Auswahl treffen';
           l_checkup.font.color:=clblack;
     end
     else
           If (radiogroup1.items:=a_richtig[i+3]) or (l_loesung.text:=a_richtig[i]) then // richtige Antwort
           begin
                l_checkup.caption:='Richtig!';
                l_checkup.font.color:=clgreen;
           end
     else // falsche Antwort
           begin
                l_checkup.caption:='Falsch!';
                l_checkup.font.color:=clred;
           end;

end;


procedure TVokabeltrainer.b_nextClick(Sender: TObject);
begin // nächste Frage anzeigen
     //i:=random(max)+1;
     l_frage.caption:='Vokabel: ' + a_vok[i];
     radiogroup1.items[0]:=a_antwort[i+1];
     radiogroup1.items[1]:=a_antwort[i+2];
     radiogroup1.items[2]:=a_antwort[i+3];
     radiogroup1.itemindex:=-1;
     l_checkup.caption:='';
     l_loesung.Text:='';

end;

procedure TVokabeltrainer.b_CheatClick(Sender: TObject);
begin // gibt die richtige Lösung aus

     l_cheat.caption:='How about: ' + a_antwort[a_richtig[i+4]] ;
     l_cheat.font.color:=clblack;
     l_cheat.font.size:=16;
     l_cheat.font.size:=16;

end;


end.

Geändert von Fredmaster (26. Jun 2012 um 23:40 Uhr)
  Mit Zitat antworten Zitat