AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Elemente aus TStringList in Laufzeit entfernen

Ein Thema von KetchUp · begonnen am 16. Nov 2018 · letzter Beitrag vom 25. Nov 2018
Antwort Antwort
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 17. Nov 2018, 13:37
Zitat:
So ganz scheint es doch nicht mit "Names" und "ValueFromIndex" zu funktionieren. Ich hab jetzt alles darauf umgeschrieben, bekomme auch keinen Compiler Error aber wieder ein "List Index out of Bounds" Fehler.
Viele Fehler lassen sich schon alleine durch ordentliches Einrücken und respektieren des Delphi Styleguides auffinden.
  Mit Zitat antworten Zitat
KetchUp

Registriert seit: 16. Nov 2018
31 Beiträge
 
#2

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 17. Nov 2018, 13:40
Woher kommt WordCount, das darf maximal Vocabulary.Count - 1 sein.
WordCount wird unter "FormCreate" auf 3 Festgelegt (nur zum testen). Es sind auch genau 3 Vokabeln in der TXT-Datei die im Moment so aussieht:

Code:
black=schwarz
red=rot
blue=blau
In FormCreat steht noch folgendes damit die erste Vokabel sofort bei Programmstart angezeigt wird:

Code:
 WordCount:= 3;
 RandomNumber:= random(WordCount);                  

    try
      Vocabulary:= TStringList.Create;                
      Vocabulary.LoadFromFile('Vocabulary.txt');      

      L_UnknownWord.Caption:= Vocabulary.ValueFromIndex[RandomNumber];
      L_CorrectAnswer.Caption:= '';

      finally
      Vocabulary.Free;
    end

Wenn Du aber erst eine Zufallszahl im Bereich bis WordCount "würfelst", aber WordCount zufällig größer als Vocabulary.Count - 1 ist, kann es sporadisch Fehler geben.
Der Fehler tritt IMMER auf. Das ist ja das Komische.



Die Vokabeln für jede einzelne Abfrage neu zu laden, halte ich nicht für so eine besonders gute Idee.
Jap, das hab ich mir auch gedacht, ist aber im Moment die einzige Möglichkeit das Programm zum Laufen zu bekommen
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 17. Nov 2018, 13:50
gelöscht

Geändert von DieDolly (18. Nov 2018 um 13:21 Uhr)
  Mit Zitat antworten Zitat
KetchUp

Registriert seit: 16. Nov 2018
31 Beiträge
 
#4

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 17. Nov 2018, 14:00
[QUOTE=DieDolly;1418306]
Zitat:
Beispielhaft das Record
Delphi-Quellcode:
TVocab = record
 German, English: string;
end;
Beim Laden des Programms erzeugst du für jede Vokabel ein Record und packst sie alle in eine Liste.
Danke für den Tipp, ich hab zwar keine Ahnung von Records, werde mich aber jetzt mal einlesen.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 17. Nov 2018, 14:02
Es wird sich lohnen. Das sage ich immer wieder.
Am besten gleich richtig machen denn sonst wirst du deinen Code später hassen.

Stell dir ein Record vor wie eine Kiste für Schrauben. In der Kiste gibt es Fächer für jede Schraubenart. Deine Kiste heißt TVocab (wovon du eine "Instanz" erstellst die dann in die Liste [die Liste ist dein Schrank wo all die Kisten drin sind] kommt) in deine Kiste kann zwei Arten von Schrauben fassen: Deutsche und Englische. Das sind natürlich Strings.

http://www.delphibasics.co.uk/Article.asp?Name=Records
https://stackoverflow.com/questions/...ist-of-records
  Mit Zitat antworten Zitat
KetchUp

Registriert seit: 16. Nov 2018
31 Beiträge
 
#6

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 17. Nov 2018, 14:09
Funktioniert das noch mit der TStringList? Denn ich muss die Vokabeln während der Laufzeit entfernen können und jeder Vokabel eine Variable zuordnen können um zu überprüfen, wie oft sie schon richtig eingegeben wurde.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#7

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 17. Nov 2018, 14:12
gelöscht

Geändert von DieDolly (18. Nov 2018 um 13:21 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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