![]() |
AW: Elemente aus TStringList in Laufzeit entfernen
Heute will ich mal nett sein. Hier ein Beispiel mit generischer TList und Klasseninstanzen.
Gelöscht weil der TE sich nur für deine StringListe interessiert |
AW: Elemente aus TStringList in Laufzeit entfernen
Stringlisten werden von 0 bis Count - 1 gezählt.
Bei drei Worten in der Stringliste darf WordCount daher nur 2 sein. Maximalwert für WordCount = Anzahl der Wörter in der Liste - 1; WordCount solltest Du nach dem Laden der Stringliste auf Stringliste.Count - 1 setzen und nicht irgendwo am Programmstart auf den vermutet richtigen Wert. |
AW: Elemente aus TStringList in Laufzeit entfernen
Hmm..
Delphi-Quellcode:
Begin
Input:= E_UserGuess.Text; E_UserGuess.Text:= ''; // Hier greifst Du auf Vocabulary zu. Wann wurde dort etwas reingeladen? Answer:=AnsiCompareStr(Vocabulary.Names[RandomNumber], Input); RepetitionCheck:=RandomNumber; While RepetitionCheck = RandomNumber Do RandomNumber:=random(WordCount); try // Hier wird Vocabulary 'Überschreiben' Vocabulary:= TStringList.Create; Vocabulary.LoadFromFile('Vocabulary.txt'); L_UnknownWord.Caption:= Vocabulary.ValueFromIndex[RandomNumber]; finally // Hier wird Vocabulary 'weggeschmissen Vocabulary.Free; end; end Siehe meine Kommentare.. Woher kommt beim ersten Zugriff auf Vocabulary der Inhalt und was meinst Du passiert beim nächsten Zugriff auf Vocabulary? |
AW: Elemente aus TStringList in Laufzeit entfernen
Zitat:
|
AW: Elemente aus TStringList in Laufzeit entfernen
Zitat:
Kann ich Vokabeln auch wieder aus der txt Datei laden, sodass man die ständig wechseln kann? Zitat:
Zitat:
|
AW: Elemente aus TStringList in Laufzeit entfernen
Zitat:
Ich hab dir bei Eine zufällige englische Vokabel anzeigen doch gezeigt wie man eine Vokabel aus den Klassen lädt. Die Txt-Datei brauchst du nach Programmstart nur ein einziges mal laden. Danach nie wieder. Das ist ja der Sinn der Sache. |
AW: Elemente aus TStringList in Laufzeit entfernen
Zitat:
PS: Ich hab gerade das Problem gefunden. Es lag tatsächlich am .Free nach finally. Jetzt funktioniert es scheinbar. |
AW: Elemente aus TStringList in Laufzeit entfernen
Zitat:
Du kannst 99% von meinem Code übernehmen. Du musst sie nur selber reinladen. Ungefähr so
Delphi-Quellcode:
try
Vocabulary:= TStringList.Create; Vocabulary.LoadFromFile('Vocabulary.txt'); for i := 0 to Vocabulary.Count - 1 do begin Vocab := TVocab.Create; Vocab.SolvedCount := 0; Vocab.German := Vocabulary.Names[i]; Vocab.English := Vocabulary.ValueFromIndex[i]; VokabelListe.Add(Vocab); end; finally Vocabulary.Free; end; |
AW: Elemente aus TStringList in Laufzeit entfernen
Zitat:
|
AW: Elemente aus TStringList in Laufzeit entfernen
Du gibst den reservierten Speicher der StringListe wieder frei.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 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 by Thomas Breitkreuz