AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte BrainyTrainy - Vokabeltrainer
Thema durchsuchen
Ansicht
Themen-Optionen

BrainyTrainy - Vokabeltrainer

Ein Thema von Timelesk · begonnen am 18. Feb 2005 · letzter Beitrag vom 9. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
Timelesk
Registriert seit: 24. Jul 2004
Hi,

Der BrainyTrainy ist ein leistungsstarker Vokabeltrainer mit vielen Funktionen.

Funktionen:
  • übersichtlich - Alle wichtigen Funktionen sind schnell und bequem erreichbar
  • leistungsstark - viele Funktionen bilden eine optimale Ausstattung zum schnellen und sicherem Vokabellernen!
  • Volltext-Vokabelsuche innerhalb einer Lektion - Rechtsklick auf dem Suchenfeld öffnet ein Kontextmenü zur Einstellung der Suchenoption
  • Beachtung der Groß- und Kleinschreibung bei der Abfrage an- und abschaltbar
  • Vokabelabfrage mit Fips, dem Hund
  • Protokollierung aller Lernerfolge
  • Import und Export von Vokabeln
und und und!

Alle Funktionen: http://www.lukas-schulze.de/index.php?show=brainytrainy

Name: BrainyTrainy - Vokabeltrainer
Last Release: 04.12.2004
Getesetet unter: WinXP, Win2000

Download

--------

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
 
Dust Signs
 
#2
  Alt 18. Feb 2005, 11:35
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:
Richtig
~~~~~~~~~~~~~~~~~~~~~~
solltest du vielleicht etwas anders formatieren. Sieht sehr unprofessionell aus

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
  Mit Zitat antworten Zitat
Timelesk
 
#3
  Alt 18. Feb 2005, 11:56
Hi,

danke, werde das soweit mal abarbeiten.
Das mit den 13MB Speicher wundert mich, ich schau da mal nach!

Danke
  Mit Zitat antworten Zitat
Timelesk
 
#4
  Alt 18. Feb 2005, 13:22
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!
  Mit Zitat antworten Zitat
Dust Signs
 
#5
  Alt 18. Feb 2005, 13:41
Zitat von Timelesk:
8.) Hmm, ist ein Memo-Feld. Wie will man des anders formatieren? Klar, ~ entfernen und dann?
Wie wärs mit einer Schriftart, bei der alle Buchstaben gleich groß, d.h. proportional sind? Ich denke da an Courier z.B. - da könntest du dann (vielleicht besser) mit ======== unterstreichen (oder einfach im Memo den FontStyle auf Underline setzen)

Dust Signs
  Mit Zitat antworten Zitat
Timelesk
 
#6
  Alt 18. Feb 2005, 14:40
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
  Mit Zitat antworten Zitat
Dust Signs
 
#7
  Alt 18. Feb 2005, 14:42
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
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

 
Delphi 2006 Professional
 
#8
  Alt 18. Feb 2005, 16:17
Zu 9:
Es gibt den Bei Google suchenLevenstein-Algorithmus (Den hab ich hier irgendwo rumfahren, muß ich mal suchen) und dann noch den Bei Google suchenSoundEx-Algorithmus, wobei zweiterer - anscheinend - mehr auf englische Begriffe ausgerichtet ist.
Axel Sefranek
  Mit Zitat antworten Zitat
Timelesk
 
#9
  Alt 18. Feb 2005, 19:54
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?
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

 
Delphi 2006 Professional
 
#10
  Alt 18. Feb 2005, 20:22
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:
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;
Und hier haste den SoundEx mal in VB. Vielleicht wird daran die Funktionsweise klar.
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 ).
Axel Sefranek
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:03 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