Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Vokabeltrainer (https://www.delphipraxis.net/127735-vokabeltrainer.html)

Jan.R 18. Jan 2009 07:35


Vokabeltrainer
 
Hallo,

ich programmiere gerade einen Vokabeltrainer.
In einem Edit-Feld steht der Pfad des Textdokumentes.
Oder wenn man auf den Button1 klickt, dann wird der OpenDialog ausgewählt.
In dem Textdokument stehen die vokabeln: deutsch-französisch!!!

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
if opendialog1.Filter = '.txt' then
begin
label25.Caption := '1';
end;
if label25.caption = '0' then
begin
showmessage ('Fehler');
end;

form1.Height := 338;
vokabeln.LoadFromFile(edit1.Text);
weiter := tstringlist.Create;
weiter.loadfromfile ('neu.txt');
if label3.Caption = '1' then
begin
label2.Visible := false;
button1.Visible := false;
edit2.Visible := false;
if label5.Caption = 'Schlecht' then
label4.Caption := vokabeln [0];
label4.Visible := true;
edit1.Visible := true;
button3.Visible := true;
end;
if label3.Caption = '0' then
application.MessageBox('Du hast keine Datei ausgewählt!','Fehler',0+0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.Execute;
edit2.Text := opendialog1.FileName;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if edit2.Text = vokabeln [21] then label5.Caption := 'Gut' else label5.Caption := 'Schlecht';

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
weiter [1] := label5.Caption;
weiter.SaveToFile(shellcombobox1.root);
end;



procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Height := 300;
end;

end.
Ich hoffe ihr könnt mir helfen,

Jan

Jan.R 18. Jan 2009 07:59

Re: Vokabeltrainer
 
Und jetzt kommt so eine komische Fehlermeldung mit einer Zugriffsverletzung oder so einer Exception in Vokabeltrainer.exe!!!

Blackheart 18. Jan 2009 08:40

Re: Vokabeltrainer
 
Wie heisst denn die Fehlermeldung !
Ich tippe mal auf diese Zeile
Delphi-Quellcode:
weiter.loadfromfile ('neu.txt');
wird wohl die Datei nicht finden wegen dem Pfad.

Jan.R 18. Jan 2009 09:26

Re: Vokabeltrainer
 
Natürlich findet er den Pfad, die Textdatei ist ja in dem Ordner wo auch das Programm gespeichert ist.

Die Fehlermeldung lautet bei XP: Eine Exception der Klasse 00001 ist in Modul Vokabeltrainer.exe aufgetreten.

In Vista: Zugriffsverletzung in Moudul 00001!

toms 18. Jan 2009 09:31

Re: Vokabeltrainer
 
Zitat:

Zitat von Jan.R
Und jetzt kommt so eine komische Fehlermeldung mit einer Zugriffsverletzung oder so einer Exception in Vokabeltrainer.exe!!!

Bei welcher Zeile kommt denn die Fehlermeldung?
Setze einen Breakpoint auf die erste Zeile im OnClick und führe den Code schrittweise aus.

Weitere Infos zu "Debugger" findest z.B bei delphi-treff.de

IceBube 18. Jan 2009 10:28

Re: Vokabeltrainer
 
Ich denke das wird der Fehler sein:

Delphi-Quellcode:
weiter := tstringlist.Create;
Du erzeugst die Stringlist aber gibts sie nicht am Ende frei! Also würd ich mal am Ende ein

Delphi-Quellcode:
weiter.Free;
einfügen.

oder du hast die StringListe "Vokabeln" nicht erzeugt!
lg

Jan.R 18. Jan 2009 10:33

Fehlermeldung
 
Das Funktioniert auch nicht!

Die Fehlermeldung lautet: Im Projekt Vokabeltrainer.exe ist eine Exception der Klasse EAccessViolation aufgetreten.
Meldung: 'Zugriffsverletzung bei Adresse 00475D26 in Modul Vokabeltrainer.exe'. Lesen von Adresse 000000000'.
Prozess wurde angehalten.

Jan.R 18. Jan 2009 10:42

LoadFromFile
 
Ich habe mal ausprobiert!

Der Fehler liegt in:
Delphi-Quellcode:
vokabeln.LoadFromFile (edit1.text);
wenn ich das rausnehme dann erscheint die fehlermeldung nicht!

aber ohne diese zeile funktioniert es ja nicht!

Habt ihr ne Idee?

quendolineDD 18. Jan 2009 13:42

Re: Vokabeltrainer
 
Also erst einmal sehe ich nicht, wo die Instanz von Vokabeln erzeugt wird.
Dann zweitens solltest du prüfen, ob der in Edit1 stehende Dateiname dem wirklichen entspricht.

Da eine AV auftritt, denke ich mal, Vokabeln wurde nicht richtig instanziert.

Jan.R 18. Jan 2009 13:45

Variablen
 
Delphi-Quellcode:
var
  Form1: TForm1;
  weiter: tstringlist;
  weiterweiter: string;
  weiter1: string;
  weiter2: string;
  weiter3: string;
  weiter4: string;
  weiter5: string;
  weiter6: string;
  weiter7: string;
  weiter8: string;
  weiter9: string;
  weiter10: string;
  weiter11: string;
  weiter12: string;
  weiter13: string;
  weiter14: string;
  weiter15: string;
  weiter16: string;
  weiter17: string;
  weiter18: string;
  weiter19: string;
  weiter20: string;
  vokabeln: tstringlist;
  vokabel1: string;
  vokabel2: string;
  vokabel3: string;
  vokabel4: string;
  vokabel5: string;
  vokabel6: string;
  vokabel7: string;
  vokabel8: string;
  vokabel9: string;
  vokabel10: string;
  vokabel11: string;
  vokabel12: string;
  vokabel13: string;
  vokabel14: string;
  vokabel15: string;
  vokabel16: string;
  vokabel17: string;
  vokabel18: string;
  vokabel19: string;
  vokabel20: string;

quendolineDD 18. Jan 2009 13:47

Re: Vokabeltrainer
 
Hast du nicht irgendwo Vokabeln := TStringList.Create stehen?

Jan.R 18. Jan 2009 13:55

Antwort
 
Jetzt ist die Fehlermeldung weg, aber jetzt kommt die Meldung: Das System kann den angegebenen Pfad nicht finden!

Woran könnte das liegen???

quendolineDD 18. Jan 2009 13:58

Re: Vokabeltrainer
 
Das der in Edit1 aeingetragene Dateiname nicht dem Dateinamen der Datei entspricht, die du laden willst.

Blackheart 18. Jan 2009 20:38

Re: Vokabeltrainer
 
Zitat:

Zitat von Blackheart
Wie heisst denn die Fehlermeldung !
Ich tippe mal auf diese Zeile
Delphi-Quellcode:
weiter.loadfromfile ('neu.txt');
wird wohl die Datei nicht finden wegen dem Pfad.

Zitat:

Zitat von Jan.R
Jetzt ist die Fehlermeldung weg, aber jetzt kommt die Meldung: Das System kann den angegebenen Pfad nicht finden!

Woran könnte das liegen???

Ohne Kommentar...

DeddyH 18. Jan 2009 20:44

Re: Vokabeltrainer
 
Mach Dir mal den Unterschied zwischen absoluten und relativen Pfaden klar. Außerdem zeigt sich wieder, dass eine vernünftige Fehlerbehandlung Gold wert sein kann (trust no one, not even yourself).

Blackheart 18. Jan 2009 21:50

Re: Vokabeltrainer
 
Zitat:

Zitat von Jan.R
Delphi-Quellcode:
var
  Form1: TForm1;
  weiter: tstringlist;
  weiterweiter: string;
  weiter1: string;
  weiter2: string;
  weiter3: string;
  weiter4: string;
  weiter5: string;
  weiter6: string;
  weiter7: string;
  weiter8: string;
  weiter9: string;
  weiter10: string;
  weiter11: string;
  weiter12: string;
  weiter13: string;
  weiter14: string;
  weiter15: string;
  weiter16: string;
  weiter17: string;
  weiter18: string;
  weiter19: string;
  weiter20: string;
  vokabeln: tstringlist;
  vokabel1: string;
  vokabel2: string;
  vokabel3: string;
  vokabel4: string;
  vokabel5: string;
  vokabel6: string;
  vokabel7: string;
  vokabel8: string;
  vokabel9: string;
  vokabel10: string;
  vokabel11: string;
  vokabel12: string;
  vokabel13: string;
  vokabel14: string;
  vokabel15: string;
  vokabel16: string;
  vokabel17: string;
  vokabel18: string;
  vokabel19: string;
  vokabel20: string;

Hier mal der Link zum Crashkurs
Crashkurs


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 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