![]() |
AW: Vokabel Trainer ! Hilfe
Blöde frage, aber wo füge ich set length überhaupt ein? Bei den variablen, oder bei formcreate? Ich glaube ich weis nämlich nun was mein problem ist. Ich glaube er liest die datei und dann macht er nichts, das heist er fürgt den text bzw die vokabeln nicht in das program ein!
|
AW: Vokabel Trainer ! Hilfe
Zitat:
|
AW: Vokabel Trainer ! Hilfe
Ich denke, da liegst Du ganz richtig.
Falls Du mit "Programm" A_Antwort meinst, ich habe nirgendwo gesehen, daß Du den Inhalt von der Stringliste dorthin überträgst. Versuch doch mal auf einem Blatt Papier den Ablauf Deines Programms zu skizzieren, und setze das in ein Delphiprogramm um. Gruß K-H |
AW: Vokabel Trainer ! Hilfe
Wie übertrage ich den den inhalt der stringliste auf a_antwort? ich glaube das würde mir immens weiterhelfen!
|
AW: Vokabel Trainer ! Hilfe
Zitat:
Einen guten Einstieg dafür ist das eBook ![]() |
AW: Vokabel Trainer ! Hilfe
Zitat:
Delphi-Quellcode:
vorher nicht vergessen
a_antwort[1]:=avoc[1];
Delphi-Quellcode:
zu verwenden!
setlength
Und noch einmal meine dringender Hinweis mach Dir Gedanken über das Konzept Deines Programms. so wie das bisher ausschaut wird dan nichts vernünftiges draus. Gruß K-H |
AW: Vokabel Trainer ! Hilfe
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. |
AW: Vokabel Trainer ! Hilfe
Ich bin zu müde jetzt alles nachzuvollziehen. Was mir auffällt:
- was machst Du mit dem i ?, ich sehe nicht dass i irgendwo verändert wird - If (radiogroup1.items:=a_richtig[i+3]) or (l_loesung.text:=a_richtig[i]) verglichen wird mit = nicht mit := (dies ist für Zuweisungen) radiogroup1.items ist eine Stringlist(bzw. TStrings) auf einen String darin greifst Du per radiogroup1.items[0] oder radiogroup1.items[i] oder radiogroup1.items[radiogroup1.Itemindex] zu Du könntest auch direkt über die Indizes radiogroup1.Itemindex=i vergleichen wenn denn i einen sinnvollen Wert enthielte |
AW: Vokabel Trainer ! Hilfe
Trotz der zarten Andeutungen scheinst Du immer noch nicht zu wissen was Du tust.
Schau Dir einmal das Form.Create an. Da wird eine globale Variable I als Index für ein Array genutzt. Es ist nicht ersichtlich wo irgendwo I ein Wert zugewiesen wird. Dann öffnest Du zwar eine Vokabeldatei, aber das zugehörige
Delphi-Quellcode:
ist nirgendwo zu finden.
Closefile
So wird das nichts. Schau Dir mal ein Grundlagentutorial an, besser arbeite es einmal durch! Gruß K-H |
AW: Vokabel Trainer ! Hilfe
Danke für alle Antworten! Ich bin fertig und alles funktioniert!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz