![]() |
BrainyTrainy - Vokabeltrainer
Hi,
Der BrainyTrainy ist ein leistungsstarker Vokabeltrainer mit vielen Funktionen. Funktionen:
Alle Funktionen: ![]() Name: BrainyTrainy - Vokabeltrainer Last Release: 04.12.2004 Getesetet unter: WinXP, Win2000 ![]() -------- Geplant ist noch eine Erleichterung beim erstellen der Lektionen: Man soll Vokabeln aus den bestehenden Lektionen in eine neue Lektion kopieren können. Aber das ist noch im Aufbau. Kritik, Fehlermeldungen und Lob wären echt klasse! Habt ihr andere Betriebssysteme: Läuft der Vokabeltrainer bei euch? Danke |
Re: BrainyTrainy - Vokabeltrainer
Hab mir das Prog. mal angeschaut. Folgendes:
1.) Das Foto in der Aboutbox ist zwar sehr nett, vergrößert aber zum Einen das Programm unnötig und eignet sich doch nur sehr wenig, wenn du das Programm hier einer - doch recht breiten - Öffentlichkeit vorstellst. Raus damit 2.) Warum kann man das Einstellungsfenster nicht über das X schließen? 3.) Mich würde mal interessieren, was dein Programm macht, bevor das Importfenster aufgerufen wird. Die Festplatte arbeitet sich zu Tode und das Programm wird schön weiß und hängt. Nach 20 sec. kommt dann der Importdialog 4.) Wenn ich den Importdialog einfach schließe ist das Hauptfenster nicht mehr bedienbar. Jetzt muss ich das Programm über den Taskmanager beenden. Naja, nochmal starten *grml* 5.) Wieso braucht dein Vokabeltrainer - wenn ich ihn nur starte und noch nie etwas damit gemacht habe - 13 (!) MB Speicher? 6.) Wenn ich eine neue Sprache erstelle und dann an eine leere Stelle in der Liste klicke wird der "Löschen" bzw. der "Bearbeiten"-Button nicht disabled - ich erhalte nur eine Meldung, dass keine Sprache ausgewählt wurde. Disablen! 7.) Warum ausgerechnet 20, 30 und 40 Vokabeln? Besser wäre ein Button und dazu entweder eine Einstellung oder ein Spinedit unter dem Button 8.) Zitat:
9.) Dein Programm ignoriert Tippfehler. Wäre bei einem Vokabelprogramm aber durchaus wünschenswert, dass es so kulant ist, dass man sich einmal vertippen darf. 10.) Lass den Hund lieber wirklich bellen. *wuffwuff* sieht aus wie ein Zitat aus dem Chat-Log eines 14-Jährigen 11.) Wirklich zufällig geordnet sind die Vokabeln ja nicht gerade 12.) Dein Programm kennt einen Unterschied zwischen "Tree" und "tree" - in diesem Fall nicht sehr angebracht (meiner Meinung nach). Du solltest zumindest den ersten Buchstaben nicht case-sensitive machen 13.) Sobald ich ein Vokabel mehr als dreimal richtig habe, ist ein grüner Smilie daneben zu sehen. Das trifft absolut nicht zu, da ich mir bei jedem Vokabel mindestens einmal hab helfen lassen... 14.) Das ständige "Weiter" nervt mit der Zeit. Vielleicht wäre es besser, wenn das Programm gleich zum nächsten Vokabel springt. 15.) "Wollen Sie wirklich exportieren?" - Hätte ich sonst auf den Button geklickt? 16.) Dein Programm exportiert nicht in den Ordner, den ich angebe 17.) Was bewirkt die Rücksetzfunktion? Die Smilies sind alle nach wie vor grün Das war's soweit. Was ich mich noch immer frage: welchen Zweck hat die Statusbar? Dust Signs |
Re: BrainyTrainy - Vokabeltrainer
Hi,
danke, werde das soweit mal abarbeiten. Das mit den 13MB Speicher wundert mich, ich schau da mal nach! Danke |
Re: BrainyTrainy - Vokabeltrainer
1.) Hab ich rausgenommen, hattest recht!
2.) Da gab es früher Probleme mit dem Speichern der Einstellungen. Mittlerweile ist das aber schon lange raus, war ein Überbleibsel. Ist entfernt 3.) Ich benutze die Komponente TShellTreeView für die Ordneranzeige und lasse den Programmpfad als Startpfad anzeigen und dabei scannt der leider irgendwie die Festplatte und Laufwerke (Diskettenlaufwerk etc.) 4.) Oha! Vielen Dank! Ist gefixt 5.) Ohjeee, keine Ahnung! Ähm, kann mir jemand sagen, wie man da am besten Vorgeht um das rauszufinden? 6.) Ist gefixt 7.) Hmmm, keine schlechte Idee: freie Wahl zwischen 20 und Höher, sollten weniger Vokabeln existieren als 20, ist die Zahl fest! Cool, DANKE! 8.) Hmm, ist ein Memo-Feld. Wie will man des anders formatieren? Klar, ~ entfernen und dann? 9.) Ja, leider ist mir noch nichts dazu eingefallen, wie man das überhaupt realisieren könnte. Przentualer Vergleich? Kommt blöd! Vor allem bei kurzen und laaaangen Wörtern 10.) Ich wollte keine extra-Dateien für den Vokabeltrainer und der Sound bei anderen Vokabeltrainern hat mich schon immer genervt! 11.) randomize und random! Gibt's was besseres? 12.) Dazu kann man über Einstellungen die Groß- und Kleinschreibung an-/abschalten 13.) Wurde gefixt! Ist nun Rot! 14.) Enter drücken bewirkt manchmal Wunder. Ich sollte irgendwo mal die ganzen TurboShortcuts etc. aufschreiben. Enter funktioniert auch bei der Vokabeleingabe und Spracherstellung etc. 15.) Entfernt, sowohl Import als auch Export 16.) Gefixt 17.) Sobald eine Vokabel abgeschlossen ist, ist sie mit einem Haken gekennzeichnet. Den grünen Smilie behält eine Vokabel 3 Abfragen lang bis der Haken frühestens kommt. Muss mal schaun, bestimmt erstell ich noch ein paar Smilies und füge die dann ein, damit man da besser zurecht kommt! |
Re: BrainyTrainy - Vokabeltrainer
Zitat:
Dust Signs |
Re: BrainyTrainy - Vokabeltrainer
Danke, werd ich mal probieren...
Was kann man denn zu 5.) machen? bei mir zeigt er 8MB an. Wie kann man da denn die Fehlerquelle(n) ermitteln? Danke PS: Ich habe die jetzige Version wieder geupdatet: - About-Dialog nun bearbeitet - Vokabelabfrage - Anzahl der Vokabeln einstellbar |
Re: BrainyTrainy - Vokabeltrainer
Ich hab keine Zeile Code. Ich kann dir nur generelle Tipps geben:
- Prüfen, ob du irgendwo Speicher reservierst und nicht mehr freigibst - Statische Arrays meiden, dynamische verwenden - So wenig Bilder wie möglich ;) Ansonsten: wie speicherst du, welche Fremdkomponenten verwendest du und wie werden die Vokabeln gespeichert (DB, File of...) Dust Signs |
Re: BrainyTrainy - Vokabeltrainer
Zu 9:
Es gibt den ![]() ![]() |
Re: BrainyTrainy - Vokabeltrainer
Hi,
ich benutze nirgendwo statische Arrays. Sind immer nur dynamische! Muss man diese wieder freigeben? Wenn nicht, dann passt das soweit! Speicher wird nirgendwo reserviert außer beim INI-File abrufen und abspeichern. aber dort wird per ini.free wieder alles freigegeben. Gespeichert werden die Vokabeln per Abspeichern aller Listboxeinträge über Listbox2.Items.SaveToFile(); Leider hab ich des mit der Datenbank bis jetzt nie auf die Reihe bekommen (mir würde schon ne Text-Datenbank reichen, aber irgendwie find ich da kein gutes Tut). Besondere Komponenten: Gridview von BergSoftware für die Anzeige der Vokabeln und die Statusbar in der Vokabelabfrage. Ansonsten glaub noch 1,2 Kompos aus der Jedi-Sammlung. @leddl: Danke für die Links, ich schau mich mal um. ================================================= Was kann man denn anstelle der TShellTreeView-Komponente zur Ordneranzeige nehmen? Oder reicht es, wenn er nur das Root-Verzeichnis vom Programm durchsucht? |
Re: BrainyTrainy - Vokabeltrainer
So, hab ein bißchen gesucht und bin fündig geworden. Der Code ist allerdings nicht von mir, den hab ich mir selber vor ner halben Ewigkeit mal irgendwo abgeholt. Der war Teil einer Funktion, um in einer TStrings-Liste das Element zu finden, das einem vorgegebenen String am ähnlichsten war. Daher hoffe ich mal, daß die Funktion so für sich alleine auch funtkioniert. Falls nich, meld dich einfach nochmal.
So, wie funktioniert das ganze? Du übergibst der Funktion deine 2 Strings und bekommst dann einen Integer zurück, der - wie der Name der Funktion schon sagt - die Distanz der beiden Strings ausdrückt. Bei 0 stimmen sie überein, ansonsten sind sie halt dementsprechend verschieden. Kannst ja ein bißchen rumexperimentieren, welche Werte für kleinere Tippfehler rauskommen und was gerade noch akzeptabel ist.
Delphi-Quellcode:
Und
function LevenshteinDistance(const sString,sPattern: String): Integer;
const MAX_SIZE = 50; var aiDistance: array [0..MAX_SIZE,0..MAX_SIZE] of Integer; i,j, iP,iQ,iR,iPP, iStringLength, iPatternLength, iMaxI,iMaxJ : Integer; chChar : Char; function Min(X,Y,Z: Integer): Integer; begin if (X<Y) then Result:=X else Result:=Y; if (Result>Z) then Result:=Z; end; { Min } begin iStringLength:=length(sString); if (iStringLength>MAX_SIZE) then iMaxI:=MAX_SIZE else iMaxI:=iStringLength; iPatternLength:=length(sPattern); if (iPatternLength>MAX_SIZE) then iMaxJ:=MAX_SIZE else iMaxJ:=iPatternLength; aiDistance[0, 0]:=0; for i:=1 to iMaxI do aiDistance[i, 0]:=aiDistance[i-1, 0]+FiR0; for j:=1 to iMaxJ do begin chChar:=sPattern[j]; if ((chChar='*') or (chChar='?')) then iP:=0 else iP:=FiP0; if (chChar='*') then iQ:=0 else iQ:=FiQ0; if (chChar='*') then iR:=0 else iR:=FiR0; aiDistance[0, j]:=aiDistance[0, j-1]+iQ; for i:=1 to iMaxI do begin if (sString[i]=sPattern[j]) then iPP:=0 else iPP:=iP; {*** aiDistance[i,j] := Minimum of 3 values ***} aiDistance[i,j]:=Min(aiDistance[i-1, j-1]+iPP, aiDistance[i, j-1] +iQ, aiDistance[i-1, j] +iR); end; end; Result:=aiDistance[iMaxI, iMaxJ]; end; ![]() Hab jetzt leider auf die schnelle bei Google nix in Delphi Language gefunden (Aber ich muß gestehen, ich hab auch grad keine große Lust gehabt und deswegen nich besonders intensiv gesucht ;)). |
Re: BrainyTrainy - Vokabeltrainer
Hi,
vielen Dank. Ich werd mal schauen, wie ich das einbaue. Werd auch nochmal bei Google schauen. Merci beaucoup |
Re: BrainyTrainy - Vokabeltrainer
Hallo,
habe jetzt einiges an meinem Vokabeltrainer geändert! Unter anderem bin ich von den Listboxen auf schnelle Stringlists umgestiegen und habe weitere Funktionen wie "Vokabeln kopieren" oder "Vokabeln drucken" eingefügt! Auch wurde der Import/Export überarbeitet und die speicherintensive ShellTreeView-Komponente herausgenommen! Zudem ist der BrainyTrainy absofort als Setup-Datei verfügbar! Die Tip-Funktion habe ich bis jetzt noch nicht umgeändert, da ich erstmal alles andere in's Reine bringen wollte und die oben genannten Erweiterungen schon sehr lange auf meiner ToDo-Liste standen! Aber ich hab mich schon damit beschäftigt!! Ich würde euch einfach nochmal bitten das Programm zu testen und mir evtl. Bugs mitzuteilen! Wäre echt cool von euch :) Vielen Dank ![]() |
Re: BrainyTrainy - Vokabeltrainer
Moin,
hab jetzt auch mal den Algorithmus für die Tipp-Funktion eingebaut, sowie die Tippfunktion etc. überarbeitet. Die Installerversion ist wieder abgesetzt! Ganz normale EXE-Datei wieder! Ich brauch für den BT keinen Installer, nur unnötige KBs und eine einzelne Datei installieren? Nicht nötig! History: ![]() Direktdownload: ![]() Über Statemenst, Bug-Reports, Ergänzungen/Vorschläge etc. freue ich mich immer wieder :) Vielen Dank |
Re: BrainyTrainy - Vokabeltrainer
Habe sowas auch mal geschrieben, Code ist leider verlorengegangen habe nur eine alte Version ist auch ein bischen her wo ich die geschrieben hatte:
Delphi-Quellcode:
unit Vok;
interface uses StdCtrls, IniFiles, SysUtils, Dialogs; const E_LOADVOK = ' Error in FUNCTION LoadVok '; E_WRITEVOK = ' Error in FUNCTION WriteVok '; E_READVOK = ' Error in FUNCTION ReadVok '; E_COMPVOK = ' Error in FUNCTION CompVok '; type TVok = class public Vokabel: array of array of String; // Dynamischer Array in dem die Vokabeln abgelegt werden VokRiZ: array of array[0..1] of byte; // Hier wird gezählt wie oft eine Vokabel richtig war VokFaZ: array of array[0..1] of byte; // Hier wird gezählt wie oft eine Vokabel falsch war Vokakt: integer; // Aktuelle Vokabel IniFile: TIniFile; // Name der Aktuellen Vokabel Datei VokAbf: smallint; // Enthält die Nummer der abgefragten bedeutung (* Allgemein: Sollte ein Fehler beim laden auftreten gibt die funktion den Wert False zurück *) function LoadVok(FileN: String): Boolean; // Laden der Vokabeln function WriteVok(FileN: String): Boolean; // Speichert Vokabeln function ReadVok(InpField: TEdit; OutField: TLabel): Boolean; // Liest nexte Vokabel ein function CompVok(VString: ShortString; var IX: Smallint): Boolean; // vergleicht die Vokabeln end; implementation var Voktype: TVok; function TVok.LoadVok(FileN: String): Boolean; var VNum: integer; VBed: smallint; begin try (*BEGIN*) Voktype.IniFile := TiniFile.Create(FileN); for VNum:=0 to 2147483647 do begin // Max Anzahl an Vokabeln werden hochgezählt for VBed:=0 to 32767 do begin // Max Anzahl an Bedeutungen pro Vokabel werden hochgezählt Voktype.Vokabel[VNum,VBed] := IniFile.ReadString(inttoStr(VNum),inttoStr(VBed),''); // Läd Vokabeln if Voktype.Vokabel[VNum,VBed] = '' then Break; // Wenn Alle Bedeutungen geladen wurden Unterbrechen end; if Voktype.Vokabel[VNum -1,0] = '' then Break; // Wenn Max Anzahl an Vokabeln geladen wurden Unterbreche end; (*END*) Result := True; except Result := False; end; end; function TVok.WriteVok(FileN: String): Boolean; var VNum: integer; VBed: smallint; begin try (*BEGIN*) Voktype.IniFile := TiniFile.Create(FileN); for VNum:=0 to 2147483647 do begin // Max Anzahl an Vokabeln werden hochgezählt for VBed:=0 to 32767 do begin // Max Anzahl an Bedeutungen pro Vokabel werden hochgezählt IniFile.WriteString(inttoStr(VNum),inttoStr(VBed),Voktype.Vokabel[VNum,VBed]); // Schreibt Vokabeln if Voktype.Vokabel[VNum,VBed +1] = '' then Break; // Wenn Alle Bedeutungen geladen wurden Unterbrechen end; if Voktype.Vokabel[VNum +1,0] = '' then Break; // Wenn Max Anzahl an Vokabeln geladen wurden Unterbreche end; (*END*) Result := True; except Result := False; end; end; function TVok.ReadVok(InpField: TEdit; OutField: TLabel): Boolean; var VOKNUM: smallint; begin try (*BEGIN*) if Voktype.CompVok(InpField.Text,VOKNUM) = False then MessageDlg(E_COMPVOK, mtWarning, [mbOk], 0); // Sollte ein Fehler bei CompVok auftreten gibt es eine Fehlermessage (*END*) Result := True; except Result := False; end; end; function TVok.CompVok(VString: ShortString; var IX: Smallint): Boolean; var i: Smallint; Ahigh: Smallint; begin try (*BEGIN*) Ahigh := high(Voktype.Vokabel[Voktype.VokAkt]); // Ermittle die größe des Arrays IX := -1; for i:=0 to Ahigh do begin if VString = Voktype.Vokabel[Voktype.VokAkt,i] then begin // Vergleiche den String mit dem Array IX := i; // Ergebniss wird ausgeliefert Break; end; end; (*END*) Result := True; except Result := False; end; end; end. |
Re: BrainyTrainy - Vokabeltrainer
Na da haste aber ein ganz kleines bischen bei andersensoft.com abgekupfert.
Was???? Grüße johnny |
Re: BrainyTrainy - Vokabeltrainer
Liste der Anhänge anzeigen (Anzahl: 2)
Also bei mir bekomme ich nur einen Fehler!
|
Re: BrainyTrainy - Vokabeltrainer
Hi,
mir gefällt Dein Programm schon sehr gut. Ich hätte da noch einen Vorschlag: Ich würde mir für ein solches Programm wünschen, ich könnte auch verben konjugieren (oder deklinieren). Was ich meine wäre so etwas wie:
Code:
Das ganze noch für verschiedene Zeiten (Presens, perfekt, ...) wäre ganz großartig!
Deutsch: Portugiesisch:
reden falar ich rede eu falo du redest vc fala er, sie, es redet fala wir reden falamos ihr redet falam sie reden falam Viel Spaß noch! Würde mich freuen etwas neues zu hören! |
Re: BrainyTrainy - Vokabeltrainer
Hallo,
wo steht denn wie ich alles wieder lösche? Ich hab die *.zip runter geladen und direkt daraus ausgeführt. Wie lösche ich jetzt die _alle_ Vokabeln? :gruebel: MfG freak |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 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-2025 by Thomas Breitkreuz