AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vokabel Trainer ! Hilfe

Ein Thema von Fredmaster · begonnen am 25. Jun 2012 · letzter Beitrag vom 28. Jun 2012
Antwort Antwort
Seite 2 von 2     12   
Fredmaster

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

AW: Vokabel Trainer ! Hilfe

  Alt 25. Jun 2012, 21:37
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!
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#12

AW: Vokabel Trainer ! Hilfe

  Alt 25. Jun 2012, 21:48
Zitat:
Blöde frage, aber wo füge ich set length überhaupt ein?
...jedenfalls bevor du etwas mit dem Array anfängst. Wo ist dann letztlich egal.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Vokabel Trainer ! Hilfe

  Alt 25. Jun 2012, 21:52
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Fredmaster

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

AW: Vokabel Trainer ! Hilfe

  Alt 25. Jun 2012, 22:01
Wie übertrage ich den den inhalt der stringliste auf a_antwort? ich glaube das würde mir immens weiterhelfen!
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
677 Beiträge
 
Delphi 12 Athens
 
#15

AW: Vokabel Trainer ! Hilfe

  Alt 26. Jun 2012, 09:04
Wie übertrage ich den den inhalt der stringliste auf a_antwort? ich glaube das würde mir immens weiterhelfen!
Ich empfehle Dir, Dich ein wenig mit den Grundlagen vertraut zu machen.
Einen guten Einstieg dafür ist das eBook DelphiStarter (S. 73ff)
Roland
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Vokabel Trainer ! Hilfe

  Alt 26. Jun 2012, 10:46
Wie übertrage ich den den inhalt der stringliste auf a_antwort? ich glaube das würde mir immens weiterhelfen!
wie wäre es z.b. mit a_antwort[1]:=avoc[1]; vorher nicht vergessen setlength zu verwenden!

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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
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
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#18

AW: Vokabel Trainer ! Hilfe

  Alt 26. Jun 2012, 23:56
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
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#19

AW: Vokabel Trainer ! Hilfe

  Alt 27. Jun 2012, 10:26
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 Closefile ist nirgendwo zu finden.

So wird das nichts.
Schau Dir mal ein Grundlagentutorial an, besser arbeite es einmal durch!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Fredmaster

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

AW: Vokabel Trainer ! Hilfe

  Alt 28. Jun 2012, 18:35
Danke für alle Antworten! Ich bin fertig und alles funktioniert!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 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