Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Vokabeltrainer (https://www.delphipraxis.net/111101-vokabeltrainer.html)

blender 29. Mär 2008 15:16


Vokabeltrainer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
im Anhang ist mein Vokabeltrainer 1 Beta 3 (als .zip).
Man kann damit Vokabellisten erstellen und diese Später wieder Öffnen.
Auf Knopfdruck wird man Abgefragt.
Wenn man eine Vokabel falsch eintippt kommt diese einmal mehr wieder.
Wenn ein Buchstabe falsch, oder vergessen wird, akzeptiert das Programm dies als richtig.
Wenn die Vokabel in der Datei woanders existiert, wird auf eine Verwechslung hingewiesen und beide Vokabeln (die, welche gerade abgefragt wurde und die, mit der Verwechselt wurde) werden einmal mehr abgefragt.
Wenn eine Vokabel richtig eingegeben wurde, wird diese einmal weniger abgefragt.
Ist das so sinnvoll?
Bei keiner Eingabe wird nachgefragt ob die abfrage beendet werden soll.
Das funktioniert leider noch nicht so richtig.
Die Abfrage kommt Teilweise mehrere Male.
Es gibt auch noch andere Fehler.
Lasse

blender 29. Mär 2008 16:12

Re: Vokabeltrainer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist eine neue Version.
Die Fehlerbegrenzung lässt sich nun Einstellen.
Beim Schließen werden die Einstellungen gespeichert.
Das funktioniert allerdings noch nicht so richtig:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

begin
vokabelns := TStringlist.Create;
vokabelnf := TStringlist.Create;
Schwierigkeit := TStringlist.Create;
 fehlerbegrenzung := 1;
 bederf:= (combobox1.Text <> combobox2.Text) and (ComboBox1.ItemIndex <> 0) and (ComboBox2.ItemIndex <> 0) and (ComboBox1.Text <> '') and (ComboBox2.Text <> '') and (edit1.Text <> '') and (edit4.text <> '') and (edit1.Text <> edit4.Text);
button3.Enabled:=bederf;
konfig:= tstringlist.create;
try
if FileExists('C:\VokabelKonfig.ini') then
begin
konfig.LoadFromFile('C:\VokabelKonfig.ini');
fehlerbegrenzung:= strtoint(konfig[0]);
edit2.Text:= inttostr(fehlerbegrenzung);
end;
finally
konfig.Free;
end;
end;
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin
konfig:= TStringList.Create;
try
if FileExists('C:\VokabelKonfig.ini') then DeleteFile('C:\VokabelKonfig.ini');
konfig.Add(inttostr(fehlerbegrenzung));
konfig.SaveToFile('C:\VokabelKonfig.ini');
finally
konfig.free;
vokabelns.Free;
vokabelnf.Free;
Schwierigkeit.Free;
end;
end;
Was ist daran falsch?

Die neue Version ignoriert bei der Abfrage leer- und Satzzeichen.


Lasse

blender 29. Mär 2008 16:43

Re: Vokabeltrainer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die alte Version hatte irgendein Problem mit der abfrage.

xZise 29. Mär 2008 17:14

Re: Vokabeltrainer
 
Hallo blender,
speicher bitte nichts in "<Laufwerkbuchstabe hier einsetzten>:\"!

Lasse den Benutzer entscheiden wo.
Entweder im Programmverzeichnis oder in den Anwendungsdaten.

Außerdem brauchst du beim Schliessen die Datei vorher nicht zu löschen!

MfG
xZise

blender 31. Mär 2008 17:26

Re: Vokabeltrainer
 
Ich versuche es jetzt mit einem Festgelegtem Progammpfad.
Das funktioniert nicht!!!
Was it daran falsch?

Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var konfig: TStringList;
begin
canclose:= MessageDlg('Mchtest du wirklich beenden?',mtConfirmation,[mbyes, mbno],0)=mryes;
konfig:= TStringList.Create;
konfig.Add(IntToStr(fehlerbegrenzung));
if DirectoryExists('C:\Programme\Vokabeltrainer 1 Beta 5\Konfiurationseinstellungen\') then
konfig.SaveToFile(DateiPfad)
else
begin
CreateDir('C:\Programme\Vokabeltrainer 1 Beta 5\Konfiurationseinstellungen\');
konfig.SaveToFile(DateiPfad);
end;
konfig.free;
end;
"Das System kannden angegebenen Pfad nicht finden."
Was soll das?

Lasse

DeddyH 31. Mär 2008 17:30

Re: Vokabeltrainer
 
Was steht denn in "Dateipfad"?

blender 31. Mär 2008 17:30

Re: Vokabeltrainer
 
Inhalt von DateiPfadist:"C:\Programme\Vokabeltrainer 1 Beta 5\Konfiurationseinstellungen\Konfig.ini"

DeddyH 31. Mär 2008 17:36

Re: Vokabeltrainer
 
Und wenn Du den Backslash mal weglässt?
Delphi-Quellcode:
if DirectoryExists('C:\Programme\Vokabeltrainer 1 Beta 5\Konfiurationseinstellungen') then
konfig.SaveToFile(DateiPfad)
else
begin
CreateDir('C:\Programme\Vokabeltrainer 1 Beta 5\Konfiurationseinstellungen');
konfig.SaveToFile(DateiPfad);
end;

blender 31. Mär 2008 17:39

Re: Vokabeltrainer
 
Es funktioniert immer noch nicht.

Die Muhkuh 31. Mär 2008 17:40

Re: Vokabeltrainer
 
Hast Du Schreibrechte auf C:?

blender 31. Mär 2008 17:43

Re: Vokabeltrainer
 
Natürlich.
Ich bin Administrator.
Außerdem wäre die Meldung dann: "Zugriff verweigert", oder?

Die Muhkuh 31. Mär 2008 17:54

Re: Vokabeltrainer
 
Zitat:

Zitat von blender
Es funktioniert immer noch nicht.

Klar, les ich auch super hier raus, dass es nicht "Zugriff verweigert" ist...

DeddyH 31. Mär 2008 17:56

Re: Vokabeltrainer
 
Ist der Pfad denn vorhanden (wenn auch falsch geschrieben)?

Matze 31. Mär 2008 17:58

Re: Vokabeltrainer
 
Zitat:

Zitat von Die Muhkuh
Klar, les ich auch super hier raus, dass es nicht "Zugriff verweigert" ist...

Wenn du lesen würdest schon:
Zitat:

Zitat von blender
"Das System kannden angegebenen Pfad nicht finden."

Der Konfigurationseinstellungen-Tippfehler spielt zwar keine Rolle, dennoch ist es anders schöner.

Auf Anhieb sehe ich auch keinen Fehler. In welcher Zeile kommt er denn genau (oben oder unten beim Schreiben)?

blender 31. Mär 2008 18:02

Re: Vokabeltrainer
 
Der Pfad wird doch von dem Programm erzeugt.
Ich habe ihn nachgeprüft, er ist vorhanden.
Es kommt immer die Meldung: "C:\Programme\Vokabeltrainer 1 Beta 5\Konfiurationseinstellungen\Konfig.ini System kann den Pfad nicht finden!".
Delphi erkennt keine Fehler.

DeddyH 31. Mär 2008 18:04

Re: Vokabeltrainer
 
Und Du bist sicher, dass Du aufgrund des Tippfehlers nicht 2 unterschiedliche Pfade für das Speichern und Laden verwendest? Ich würde eine Konstante verwenden, um das auszuschließen.

blender 31. Mär 2008 18:04

Re: Vokabeltrainer
 
Danke für den Hinweis auf den Rechtschreibfehler.
Nach der Behebung hat es Funktioniert.
Danke!!!

blender 31. Mär 2008 18:15

Re: Vokabeltrainer
 
Wisst ihr was hier falsch ist?
Die erste Zeile der geladenen Datei soll nun ausgelesen und der Edit-Komponente als Text zugewiesen werden. (Diese ist mit einer UpDown-Komponente Verknüpft.)

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var konfig: TStringlist;
begin
konfig:= TStringlist.Create;
bederf:= (combobox1.Text <> combobox2.Text) and (ComboBox1.ItemIndex <> 0) and (ComboBox2.ItemIndex <> 0) and (ComboBox1.Text <> '') and (ComboBox2.Text <> '') and (edit1.Text <> '') and (edit4.text <> '') and (edit1.Text <> edit4.Text);
button3.Enabled := bederf;
vokabelns := TStringlist.Create;
vokabelnf := TStringlist.Create;
Schwierigkeit := TStringlist.Create;
fehlerbegrenzung := 1;
if FileExists(DateiPfad) then
begin
konfig.loadfromfile(DateiPfad);
fehlerbegrenzung:= StrToInt(Konfig.Strings[0]);
end;
label2.Caption:= 'Die Fehlerbegrenzung liegt im Moment bei: ';
edit2.Text:= IntToStr(fehlerbegrenzung);
konfig.Free;
end;

DeddyH 31. Mär 2008 18:18

Re: Vokabeltrainer
 
1. Gewöhn Dir mal eine halbwegs vernünftige Einrückung an.
2. Lokal erzeugte Objekt sollten auch lokal wieder freigegeben werden.
3. Was funktioniert denn nicht?

Die Muhkuh 31. Mär 2008 18:20

Re: Vokabeltrainer
 
4. Die Resourcenschutzblöcke fehlen.

DeddyH 31. Mär 2008 18:21

Re: Vokabeltrainer
 
Das gehört bei mir mit zu 2. ;) , hab ich nur nicht eindeutig gesagt.

Die Muhkuh 31. Mär 2008 18:22

Re: Vokabeltrainer
 
Zitat:

Zitat von DeddyH
Das gehört bei mir mit zu 2. ;) , hab ich nur nicht eindeutig gesagt.

:mrgreen:

Dann steht da auch die Fehlerbeschreibung, nur nicht eindeutig gesagt. :mrgreen:

*SCNR*

blender 31. Mär 2008 18:23

Re: Vokabeltrainer
 
Die Edit-Komponente zeigt eine '0' an, owohl in der Datei ausdrücklich eine '1' gesspeichert ist!!!

Übrigens: An den Ressourcenschutzblöcken lag es nicht.

DeddyH 31. Mär 2008 18:29

Re: Vokabeltrainer
 
Hast Du mal einen Breakpoint gesetzt und durchgesteppt?

blender 31. Mär 2008 18:31

Re: Vokabeltrainer
 
Bei einem Haltepunkt wird bei mir nie gestoppt.
Ich weiß auch nicht warum.
Man muss doch eigentlich nur den blauen Punkt anklicken, der daraufhin rot wird, oder? (Unbedingte Haltepunkte)

Die Muhkuh 31. Mär 2008 18:33

Re: Vokabeltrainer
 
Ja.

blender 31. Mär 2008 18:35

Re: Vokabeltrainer
 
Genau das mache ich!!!
Das Programm jedoch läuft normal wie immer!!! :wall:

Die Muhkuh 31. Mär 2008 18:37

Re: Vokabeltrainer
 
Dann führt er wohl den Code nicht aus.

Startet Du das Programm über Start -> Start (F9)?

blender 31. Mär 2008 18:37

Re: Vokabeltrainer
 
Über F9.

Die Muhkuh 31. Mär 2008 18:38

Re: Vokabeltrainer
 
Ist das Ereignis (FormCreate) der Form überhaupt zugewiesen?

Eig. dürfte er, wenn dem nicht so wäre, den Code ja nicht einkompilieren. :-?
Wo setzt Du den Breakpoint hin?

blender 31. Mär 2008 18:41

Re: Vokabeltrainer
 
Der Haltepunkt ist bei:
Delphi-Quellcode:
  edit2.Text:= IntToStr(fehlerbegrenzung);
Form1.Create ist Deklariert.

Matze 31. Mär 2008 18:43

Re: Vokabeltrainer
 
Hallo,

ich bin überzeugt davon, dass du dich viel leichter tust, wenn du TIniFile (Tutorial) nutzt. Deine Datei heißt "Konfig.ini" und der typische Ini-Aufbau ist jedoch ein anderer als den, den du nutzt.
Auch die Fehlersuche wird dadurch erheblich vereinfacht.

Die Muhkuh 31. Mär 2008 18:47

Re: Vokabeltrainer
 
Und schau bitte nochmal nach, ob Du das Ereignis auf der Form zugewiesen hast.

blender 31. Mär 2008 18:47

Re: Vokabeltrainer
 
Was meinst du damit?

Die Muhkuh 31. Mär 2008 18:48

Re: Vokabeltrainer
 
Im ObjektInspektor Dein Formular auswählen, auf "Ereignisse" klicke und dort schauen, ob FormCreate bei OnCreate eingetragen ist.

DeddyH 31. Mär 2008 18:49

Re: Vokabeltrainer
 
Einfach mal nen Doppelklick auf die Form und schauen, wo man steht

blender 31. Mär 2008 18:50

Re: Vokabeltrainer
 
Ja, dort steht FormCreate.

DeddyH 31. Mär 2008 18:51

Re: Vokabeltrainer
 
Und Dein Code?

blender 31. Mär 2008 18:52

Re: Vokabeltrainer
 
Der kommt auf Doppelklick.

DeddyH 31. Mär 2008 18:53

Re: Vokabeltrainer
 
Dann muss der Breakpoint doch funzen. Ich kann mir nicht vorstellen, dass das an der Personal liegen soll.


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