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
Seite 1 von 2  1 2      
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#1

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 09:53
Wo muss ich Vocabulary.Free; platzieren damit das funktioniert?
Nirgendwo (jedenfalls nicht in dieser Routine).

Wo erstellst Du die Liste ubd wo lädst Du die Liste?

Im FormCreate?
Dann gehört das Vocabulary.Free ins FormDestroy.

Sinnvollerweise solltest Du die Liste beim Programmstart erstellen (unabhängig davon ob Du sie dort sofort lädst oder erst später).

Freigeben solltest Du sie dann beim Programmende.

Wenn Du sie unbedingt leeren möchtest, so kannst Du an der Stelle, an der momentan das Vocabulary.Free steht, ein Vocabulary.Clear aufrufen. Dann wird die Liste geleert, aber nicht zerstört.
  Mit Zitat antworten Zitat
KetchUp

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

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 10:29

Wo erstellst Du die Liste ubd wo lädst Du die Liste?

Im FormCreate?
Dann gehört das Vocabulary.Free ins FormDestroy.
Hab ich jetzt auch so gemacht.

Delphi-Quellcode:
 If Vocabulary.Count > 0 Then

//mach was

  Else
    Begin
      FormDestroy(Vocabulary);
    End;
Sobald die Bedingung nicht mehr erfüllt ist stürzt er aber ab. Er kommt garnicht dazu die Prozedur FormDestroy aufzurufen.
  Mit Zitat antworten Zitat
DieDolly

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

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 10:59
Zitat:
Das Programm muss auch noch ein paar andere Sachen können wie zum Beispiel die Lernrichtung (Deutsch>Englisch oder Englisch>Deutsch) ändern.
Ein Grund mehr das mit Klassen zu machen

Und wenn du es schon komplizierter machst als es sein muss und ehrlich gesagt auch irgendwie falsch, dann entferne wenigstens diesen einen Fehler hier.
Alle anderen kannst du drin lassen denn sonst bleibt kein Code mehr übrig.
If GermanEnglish = True
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 11:19
Zitat:
Das Programm muss auch noch ein paar andere Sachen können wie zum Beispiel die Lernrichtung (Deutsch>Englisch oder Englisch>Deutsch) ändern.
Ein Grund mehr das mit Klassen zu machen

Und wenn du es schon komplizierter machst als es sein muss und ehrlich gesagt auch irgendwie falsch, dann entferne wenigstens diesen einen Fehler hier.
Alle anderen kannst du drin lassen denn sonst bleibt kein Code mehr übrig.
If GermanEnglish = True
Es ist kein Fehler nur eine Unart!

Das reicht auf True muss man nicht prüfen..
If GermanEnglish then

oder
If not GermanEnglish then

anstelle von
If GermanEnglish = false then

gruss

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

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

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 11:24
Zitat:
Es ist kein Fehler nur eine Unart!
So hätte ich es besser auch genannt.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#6

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 11:30

Wo erstellst Du die Liste ubd wo lädst Du die Liste?

Im FormCreate?
Dann gehört das Vocabulary.Free ins FormDestroy.
Hab ich jetzt auch so gemacht.

Delphi-Quellcode:
 If Vocabulary.Count > 0 Then

//mach was

  Else
    Begin
      FormDestroy(Vocabulary);
    End;
Sobald die Bedingung nicht mehr erfüllt ist stürzt er aber ab. Er kommt garnicht dazu die Prozedur FormDestroy aufzurufen.
Du darfst die Liste nicht in der Routine freigeben, sondern nur und ausschließlich nur in der Methode FormDestroy. Und die Methode FormDestroy darfst Du nicht selbst aufrufen, das geschieht automatisch beim Programmende, genauso wie beim Programmstart FormCreate automatisch aufgerufen wird.

Die Liste in Deiner oben geposteten Routine freizugeben ist schlicht und einfach (bei der jetztigen Form der Implementierung) unsinnig und absolut kontraproduktiv.

Lass es doch bitte einfach endlich weg.

Bitte poste mal den vollständigen Quelltext, den Du bisher geschrieben hast. Mit den Fragmenten ist es nur ein Rumgestocher, wo welcher Fehler herkommen könnte und wie man ihn beheben könnte, wenn man die Abhängigkeiten innerhalb des gesamten Programmes nicht kennt.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 11:33
Zitat:
Du darfst die Liste nicht in der Routine freigeben
Eventuell fehlt ihm etwas Mayo <> Ketchup
sorry das musste sein.

gruss
  Mit Zitat antworten Zitat
DieDolly

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

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 11:38
Oder der Willen, es endlich mit den Klassen zu machen. Dann braucht er die SttringListe, seinen Gegner, nur noch einmalig beim Programmstart.
Ich habe vor 10 Jahren auch mal einen Vokabeltrainer gemacht und der baute auch auf StringListen auf, weil ich damals nix anderes kannte. Sei doch froh, dass dir hier direkt ein sehr viel besserer Weg vorgeschlagen wird. Der ist nicht nur für dich besser, sondern auch für deine Zensur.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 11:41
Oder der Willen, es endlich mit den Klassen zu machen. Dann braucht er die SttringListe, seinen Gegner, nur noch einmalig beim Programmstart.
Ich habe vor 10 Jahren auch mal einen Vokabeltrainer gemacht und der baute auch auf StringListen auf, weil ich damals nix anderes kannte. Sei doch froh, dass dir hier direkt ein sehr viel besserer Weg vorgeschlagen wird. Der ist nicht nur für dich besser, sondern auch für deine Zensur.
Nun ja ich will nicht meckern aber 'Then' immer in die nächste zeile? Verstehe wer will. Das sind alles so kleine Feinheiten.. der Code ist sehr schlecht lesbar.
Aber gut sei's drum.

gruss
  Mit Zitat antworten Zitat
DieDolly

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

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 11:47
Jetzt mal Butter bei die Fische.

Wir wollen dir alle nur helfen. Wir wissen sicher auch, dass das, was wir hier von uns geben und dir empfehlen, nicht leicht für dich ist.
Aber nur weil man etwas nicht gleich versteht sollte man doch nicht bei einer Lösung die nachgewiesenermaßen schlecht ist.

Wenn euch nahegelegt wurde das mit einer StringListe zu machen, dann ist das nur eine Empfehlung. Aber du kannst es sehr viel besser machen.
Ich habe dir ein komplettes Beispiel gepostet und Holger hat es komplettiert. Teste es doch einfach aus. Du wirst sehen wie unglaublich leichter alles wird wenn du nur auf uns hörst.

Vergiss die StringListe. Die scheinst du nicht wirklich verstanden zu haben. Das, mit dem Vergessen, haben dir hier auch schon mehrere gesagt.

PS: ich würde mir an dieser Stelle einen schönen und ausführlichen Roman von Michael wünschen =)
  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:33 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