![]() |
QVok - Ein Vokabeltrainer
Liste der Anhänge anzeigen (Anzahl: 5)
Hey DP'ler,
ich wollte eich einmal eine Schulaufgabe vorstellen - Ein Vokabeltrainer der eine Liste als Datenstruktur verwendet. Wie bei vielen Trainern, werden auch bei meinem die Vokabeln in "Stufen" einsortiert. Je öfter man sie richtig beantwortet, desto höher steigt sie in ihrer Stufe auf (Max Stufe 6). Falls sie falsch beantwortet wurde, so wandert sie zurück in die erste Stufe. Mit ihm kann man:
//Edit:
|
AW: QVok - Ein Vokabeltrainer
Ich hab mal in den Sourcecode reingeschaut...
Für ein Schulprojekt ist das erstaunlich gute Qualität. :thumb: Auch die Benutzeroberfläche ist sehr ansprechend und auch für Touchscreens geeignet. Aber ich habe auch noch ein bisschen was zu merkern: Insgesamt ist der Code zu wenig kommentiert und falls Kommentare vorhanden sind, dann beschreiben sie nur das Offensichtliche. Beispiel:
Delphi-Quellcode:
Lieber diese Null-Info-Kommentare weglassen und eine Kurz-Beschreibung vor jeder Klasse.
Bt_Correct.Visible := False; //Button ausblenden
Und man sollte eine eigene Klasse auch nicht TList nennen weil es
Delphi-Quellcode:
schon in der VCL gibt.
TList
|
AW: QVok - Ein Vokabeltrainer
Delphi-Quellcode:
gehört zur RTL und nicht zur VCL ;)
TList
|
AW: QVok - Ein Vokabeltrainer
Zitat:
Zitat:
Zitat:
Danke für dein feedback:-D |
AW: QVok - Ein Vokabeltrainer
Hallo,
Toll gemacht :-D ! Hätte noch ein paar Inputs / Verbesserungsvorschläge: 1. Hat man Vokabeln geöffnet (via Menü Öffnen) und klickt dann auf Neu, passiert nichts. 2. Hints wären wünschenswert, um die Aktionen genauer zu beschreiben. So ist bspw. bei Neu nicht unbedingt klar, was geschieht. 3. Ein Programmicon hinzufügen 4. Bei Doppelklick auf eine ListView Zeile die aktuelle Vokabel bearbeiten 5. Die Aktion "Löschen" erfolgt ohne Rückfrage. Ein Dialog "Möchten Sie die wirklich...?" vorschalten 6. Existiert eine Vokabel bereits und wird die gleiche (Vorderseite) hinzugefügt, wird die Vokabel (richtigerweise) nicht nochmals hinzugefügt. Jedoch sollte ein Hinweis erscheinen. (Diese Vokabel ist bereits vorhanden...etc.) 7. Vokabel exportieren (csv, Zwischenablage) 8. Befindet man sich in der Abfrage, sollten die Neu bis Suchen Buttons deaktiviert werden. (Momentan gibt es so eine AV bei KLick auf Löschen etc.) 9. In einer Statusbar die Anzahl Vokabeln der Listview anzeigen 10. Die Spaltenbreiten kannst du bereits im Objekt Inspektor festlegen. Somit ist dieser Code nicht nötig:
Delphi-Quellcode:
LV_Ausgabe.Column[0].Width := 300;
LV_Ausgabe.Column[1].Width := 300; LV_Ausgabe.Column[2].Width := 200; LV_Ausgabe.Column[3].Width := 50; 11. Etwas kürzer: Anstatt Visible :=
Delphi-Quellcode:
... .Show / .Hide verwenden.
Bt_Hinzufuegen.Visible := True;
Bt_Bearbeiten.Visible := True; Bt_Loeschen.Visible := True; Bt_Suche.Visible := True; Bt_Abfrage.Visible := True;
Delphi-Quellcode:
Bt_Hinzufuegen.Show;
Bt_Bearbeiten.Show; Bt_Loeschen.Show; Bt_Suche.Show; Bt_Abfrage.Show; |
AW: QVok - Ein Vokabeltrainer
Toll! Design gefällt mir, ich vermisse lediglich hot keys. Aber das ist in Touchscreenzeiten wahrscheinlich out.
Mir ist nicht ganz klar, warum man selbst bestimmt, ob es richtig oder falsch war? Warum Zeilenumbrüche in den Eingaben? Ich habe probehalber eine Vokabel mit Zeilenumbruch angelegt. Die Datei konnte nachher nicht geöffnet werden. Im Texteditor sieht man, dass sie exakt so gespeichert wurde, mit Zeilenumbruch. Dateiformat: Entspricht das irgendeinem Standard? Mag sein, zweckmäßig wäre ggF. ein bekanntes Format, vielleicht XML. Wenn schon ein Header drin ist, wäre eine Formatversion auch nicht schlecht. |
AW: QVok - Ein Vokabeltrainer
Zitat:
Zitat:
Zitat:
Zitat:
Code:
Somit verschiebt sich das ganze, wenn er eine Vokabel über mehrere Zeilen abspeichert und in der nächsten Zeile dann kein Datum steht, sondern irgend ein wirrer Text. Habe erstmal die Zeilenumbrüche deaktiviert.
QVok Vokabel Datei
Vorderseite Rückseite Datum Stufe Vorderseite Rückseite ... Wenn das irgend einem Standard entsprechen sollte, wäre das ein großer Zufall :lol: Das war mehr eine Überlegung meinerseits, wie ich die Daten strukturiert abspeichern kann. XML hatte ich mir in dazu flüchtig angesehen, aber nichts für mich verständliches gefunden. Zugegeben ich habe nicht gründlich gesucht, kennt dennoch jemand ein Tutorial o.Ä. zu XML ? Danke für die vielen Rückmeldungen :thumb: |
AW: QVok - Ein Vokabeltrainer
Zitat:
Wenn der Code allerdings so kompliziert ist, das Du ihn kommentieren müsstest... schreib ihn um. :-) Kommentare im Code sind fast nie notwendig. Ausnahmen sind : Quellenangaben, Urheberhinweise ("Copyright"), Gesetzesvorschriften usw. Wie sx2008 schon gesagt hat: Beschreibe lieber die Klassen, Methoden und Parameter. Wozu dienen sie? Welche Einschränkungen gibt es (muss > 0 sein, usw). Prüfe diese Bedingungen in deinem Code ruhig ab (außer, es ist Geschwindigkeitsrelevant). |
AW: QVok - Ein Vokabeltrainer
Zitat:
Stichwort Levenshtein-Distanz, da kann man schöne Sachen mit machen. Vielleicht gibt's schon fertige Implementierungen im Netz... Zitat:
|
AW: QVok - Ein Vokabeltrainer
Um die Bedienelemente zu setzen, kannst du ein Set benutzen (ist übersichtlicher und weniger fehleranfällig).
Delphi-Quellcode:
Gruß
type
TToolButtonEnabledFlags = set of (tbefNeu, tbefOpen, tbefSave, tbefAdd, tbefEdit, tbefDel, tbefSearch, tbefAbfrag, tbefAll); .. procedure TFGUI.SetToolButtonsEnabled(Flags: TToolButtonEnabledFlags); begin Bt_Neu.Enabled := (tbefNeu in Flags) or (tbefAll in Flags); Bt_Oeffnen.Enabled := (tbefOpen in Flags) or (tbefAll in Flags); Bt_Speichern.Enabled := (tbefSave in Flags) or (tbefAll in Flags); Bt_Hinzufuegen.Enabled := (tbefAdd in Flags) or (tbefAll in Flags); Bt_Bearbeiten.Enabled := (tbefEdit in Flags) or (tbefAll in Flags); Bt_Loeschen.Enabled := (tbefDel in Flags) or (tbefAll in Flags); Bt_Suche.Enabled := (tbefSearch in Flags) or (tbefAll in Flags); Bt_Abfrage.Enabled := (tbefAbfrag in Flags) or (tbefAll in Flags); end; .. SetToolButtonsEnabled([tbefAll]); SetToolButtonsEnabled([tbefAbfrag]); Thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 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