Vokabel trainer?
Ich habe hier einen Vokabel trainer zusammengebaut...Ich kapiere nur nicht wo hier genau die fehler meldung herkommt?
Wenn ich Versuche die Vokabel u üebrprüfen(submit) dann kommt die fegler meldung "EAccessViolation" Überhaupt funktioniert das Program noch nicht perfekt, die vokabeln werden noch nicht aus der textdatei ausgelesen bzw nicht angezeigt?! Danke für eure Hilfe
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TVokabeltrainer = class(TForm) l_frage: TLabel; l_checkup: TLabel; l_antwort: TLabel; b_submit: TButton; b_next: TButton; b_cheat: TButton; b_text: TButton; OpenDialog1: TOpenDialog; ListBox1: TListBox; l_loesung: TEdit; RadioGroup1: TRadioGroup; procedure FormCreate(Sender: TObject); procedure b_submitClick(Sender: TObject); procedure b_nextClick(Sender: TObject); procedure b_cheatClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; const max=8; var Vokabeltrainer: TVokabeltrainer; datei: TextFile; DateiName: string; a_vok: Array of String; a_antwort: Array of String; a_richtig: Array of Integer; nr: Integer; voc: TStringList; implementation {$R *.DFM} procedure TVokabeltrainer.FormCreate(Sender: TObject); var max: integer; begin If OpenDialog1.execute then Dateiname:=opendialog1.filename else Dateiname:='voc.txt'; voc:=TStringlist.create; voc.LoadFromFile(Dateiname); max:=voc.count div(5); nr:=random(max-1); l_frage.caption:='Vokabel: ' + voc[nr*5]; radiogroup1.items[0]:=voc[nr*5+1]; radiogroup1.items[1]:=voc[nr*5+2]; radiogroup1.items[2]:=voc[nr*5+3]; nr:=random(max)+1; l_frage.caption:='Vokabel: ' + a_vok[nr*5]; radiogroup1.items[0]:=a_antwort[nr*5+1]; radiogroup1.items[1]:=a_antwort[nr*5+2]; radiogroup1.items[2]:=a_antwort[nr*5+3]; radiogroup1.itemindex:=-1; end; procedure TVokabeltrainer.b_cheatClick(Sender: TObject); begin l_checkup.caption:='how about "' + a_antwort[nr, a_richtig[nr]] + '"?'; l_checkup.font.color:=clblack; l_checkup.font.size:=10; end; procedure TVokabeltrainer.b_submitClick(Sender: TObject); begin If (Radiogroup1.itemindex=-1) and (l_loesung.text='') then begin l_checkup.caption:='Bitte eine Auswahl treffen'; l_checkup.font.color:=clblack; end else If (Radiogroup1.itemindex=a_richtig[nr]-1) or (l_loesung.text=a_antwort[nr, a_richtig[nr]] ) then begin l_checkup.caption:='Richtig!'; l_checkup.font.color:=clgreen; end else begin l_checkup.caption:='Falsch!'; l_checkup.font.color:=clred; end; end; procedure TVokabeltrainer.b_nextClick(Sender: TObject); begin nr:=random(max)+1; l_frage.caption:='Vokabel: ' + a_vok[nr*5]; radiogroup1.items[0]:=a_antwort[nr*5+1]; radiogroup1.items[1]:=a_antwort[nr*5+2]; radiogroup1.items[2]:=a_antwort[nr*5+3]; radiogroup1.itemindex:=-1; l_checkup.caption:=''; l_loesung.Text:=''; end; end. |
AW: Vokabel trainer?
Ich würde dir empfehlen mal zwei andere aktuelle Themen durchzulesen.
http://www.delphipraxis.net/169023-f...owmessage.html (vorallem Antwort #3) http://www.delphipraxis.net/169026-s...erletzung.html (hier hat jemand den selben Fehler gemacht) SetLength Wenn du schon dynamische Arrays verwendest, dann solltest du da auch Speicher reservieren, bevor du da was reinmachst und beim Auslesen sollte man nur auf existierende Felder zugreifen. |
AW: Vokabel trainer?
einmal reicht hier gehts weiter...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz