Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Vokabel Trainer ! Hilfe (https://www.delphipraxis.net/169035-vokabel-trainer-hilfe.html)

Fredmaster 25. Jun 2012 17:42

Vokabel Trainer ! Hilfe
 
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.

alleinherrscher 25. Jun 2012 17:46

AW: Vokabel Trainer ! Hilfe
 
Hi und willkommen. Warum machst du 3 Beiträge auf? Deine dynamischen Arrays sind nicht initialisiert.

DeddyH 25. Jun 2012 18:03

AW: Vokabel Trainer ! Hilfe
 
Und dann auch noch Crosspost (auch dort 2 Mal). So macht man sich keine Freunde.

EWeiss 25. Jun 2012 18:17

AW: Vokabel Trainer ! Hilfe
 
Ich kapiere es nicht.
Wenn ich fragen stelle in der letzten zeit bekomme ich keine Antworten mehr.
Hier werden direkt 3 Themen erstellt aund alle posten fleißig drauf los.

Scheint doch was zu bewirken.

Spaming Postings.

gruss

DeddyH 25. Jun 2012 18:21

AW: Vokabel Trainer ! Hilfe
 
Vielleicht hast Du nur die falschen Probleme :mrgreen:

EWeiss 25. Jun 2012 18:36

AW: Vokabel Trainer ! Hilfe
 
Zitat:

Zitat von DeddyH (Beitrag 1172368)
Vielleicht hast Du nur die falschen Probleme :mrgreen:

Das hat was für sich ;)
Na ja es ist ja kein Zwang das jemand helfen muss
Aber ist schon verwunderlich wie die Leute dann auf solche mehr Postings reagieren .. Fast ein Zwang?

Gruss

Fredmaster 25. Jun 2012 18:48

AW: Vokabel Trainer ! Hilfe
 
Danke für die schnellen Antworten! Das mit den 3 Threads tut mir wirklich leid...Ich muss das problem nur schnell gelöst haben! Tut mir leid, nächstes mal werde ich das nicht wieder machen!

Genau das ist mein Problem! Ich weis leider nicht wie ich diese arays initialisiere?

himitsu 25. Jun 2012 18:54

AW: Vokabel Trainer ! Hilfe
 
Zitat:

Zitat von himitsu (Beitrag 1172366)
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)





Delphi-Referenz durchsuchenSetLength

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.

Damit nun alles zusammen ist.

Zitat:

Zitat von Fredmaster (Beitrag 1172376)
Ich weis leider nicht wie ich diese arays initialisiere?

Natürlich wurde das noch von Keinem erwähnt. :roll:

DeddyH 25. Jun 2012 18:56

AW: Vokabel Trainer ! Hilfe
 
In welchem Forum soll ich denn nun antworten? :gruebel:

alleinherrscher 25. Jun 2012 19:04

AW: Vokabel Trainer ! Hilfe
 
Zitat:

Zitat von Fredmaster (Beitrag 1172376)
Ich weis leider nicht wie ich diese arays initialisiere?

Wenn du zum Beispiel 3 Einträge in deinem Array haben willst, musst du zunächst im Speicher Platz dafür schaffen:

setlength(myarray,3);

anschließend kannst du auf die Einträge myarray[0], myarray[1] und myarray[2] zugreifen. myarray[3] gibt es nicht, weil es ja das 4. Element wäre. Also immer aufpassen: von 0 aus zählen.

mit length(myarray) kannst du abfragen, wie lang dein array ist.

Gruß, Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr.
Seite 1 von 2  1 2      

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