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
KetchUp

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

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 19. Nov 2018, 20:17
Zitat:
Aber ich weiß noch nicht, wie ich jeder Vokabel eine Variable zuweißen kann die dann von 3 runter zählt.
Klassen, SolvedCount
Ich finde es wirklich toll, dass du dir die mühe gemacht hast den Quellcode dafür zu schreiben und auch schade, dass du ihn wieder entfernt hast. Das hätte auch anderen helfen können.

Es fällt mir aber sehr schwer mich in das System reinzudenken und ich kann (und möchte auch nicht) einfach Quellcode kopieren, da ich jede Zeile Quellcode in einem Vortrag erklären können muss. Mir liegt das Programmieren nicht so, bin eher der Grafiker. Ich finde es aber interessant und will eine gute Arbeit abliefern.
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#2

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 19. Nov 2018, 20:50
Dann mal einen Vorschlag ohne Klassen.

Lade die Liste und arbeite diese ab (Eintrag wird sofort gelöscht). Wenn die leer ist dann wieder aus der Datei laden, und nochmal durch, laden und nochmal durch und fertig.
  Mit Zitat antworten Zitat
DieDolly

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

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 19. Nov 2018, 21:01
Zitat:
und auch schade, dass du ihn wieder entfernt hast.
Weil du dich gegen Neues aussprichst. Neu ist für dich Gift. So fasse ich das jedenfalls auf.
Wenns dir schwer fällt dich darein zu denken, dann nutz doch Google oder F1 oder die online Embarcadero Hilfe oder das Forum oder oder.
Du erfindest das Rad neu, und nicht nur einmal.
Nutzen von Klassen und Listen hat hier nur Vorteile denn du nutzt zusätzlich zum einmaligen Laden der Vokabeln eh eine StringListe. 2 Fliegen mit einer Klappe.

Geändert von DieDolly (19. Nov 2018 um 21:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 19. Nov 2018, 23:51
Dann versuche ich mal eine Erklärung.
Du hast eine Vokabel und die zugehörige Übersetzung. Weiterhin benötigst Du eine Zählung für die korrekte Übersetzung.
Du könntest mit drei Arrays (Vokabel,übersetzung,zählung) arbeiten. Das ist aber arg aufwendig und fehleranfällig. Eine andere Möglichkeit wäre es ein Record zu nutzen z.b.
Delphi-Quellcode:
type
myrecord = record
             Vokabel : string;
             Uebersetzung : string;
             Zaehler : integer;
          end;
In diesem Falle hast Du alle notwendigen Daten in einem Datensatz zusammen gefasst. Da hast Du keinen Aufwand mit der Synchronisation.
Jetzt packst Du die Records noch in eine Liste, die nicht nur die Daten sondern auch alle notendigen Funktionen enthält und Das halbe Programm ist fertig.
Die andere Hälfte ist die Darstellung und die Benutzereingaben. Mit den Daten hast Du dann nichts mehr zu tun, da die Auswahl der Datensätze, die Zählung, die Initialisierung etc. in der Liste enthalten sind.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.438 Beiträge
 
Delphi 12 Athens
 
#5

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 20. Nov 2018, 07:00
Moin...
@KetchUp:
Da keine Rückfrage aufgekommen ist, die Frage, ob du das:
https://www.delphipraxis.net/1418380-post46.html
...gelesen hast?
  Mit Zitat antworten Zitat
KetchUp

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

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 20. Nov 2018, 19:41
Da keine Rückfrage aufgekommen ist, die Frage, ob du das:
...gelesen hast?
Deinen Post hab ich gelesen aber nicht den ganzen Styleguide. Ich stimme auch allen Punkten zu nur die Bezeichnung "L_CorrectAnswer" sollen wir so machen. Das L steht für "Label". Mit dem Unterstrich finde ich es besser lesbar, das war also mein "Verschulden".

Den Code schau ich mir erst morgen wieder an, muss noch lernen. Es sieht ja aus als komme ich um Record oder Classes nicht drum herum.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.438 Beiträge
 
Delphi 12 Athens
 
#7

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 21. Nov 2018, 05:47
Moin...

...alles gut. Mir ging es darum, daß man sich nicht was angewöhnt was später hinderlich ist, wenn man z.B. in ein neues Team wechselt.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 21. Nov 2018, 21:44
Als kleine Gedankenstütze, diesen Tipp mit Records meinte ich, damit es keine Kopie wird benenn halt alles um aber bleibe beim Konstrukt, das wäre eine gute Ausgangslage.

Dann versuche ich mal eine Erklärung.
Du hast eine Vokabel und die zugehörige Übersetzung. Weiterhin benötigst Du eine Zählung für die korrekte Übersetzung.
Du könntest mit drei Arrays (Vokabel,übersetzung,zählung) arbeiten. Das ist aber arg aufwendig und fehleranfällig. Eine andere Möglichkeit wäre es ein Record zu nutzen z.b.
Delphi-Quellcode:
type
myrecord = record
             Vokabel : string;
             Uebersetzung : string;
             Zaehler : integer;
          end;
In diesem Falle hast Du alle notwendigen Daten in einem Datensatz zusammen gefasst. Da hast Du keinen Aufwand mit der Synchronisation.
Jetzt packst Du die Records noch in eine Liste, die nicht nur die Daten sondern auch alle notendigen Funktionen enthält und Das halbe Programm ist fertig.
Die andere Hälfte ist die Darstellung und die Benutzereingaben. Mit den Daten hast Du dann nichts mehr zu tun, da die Auswahl der Datensätze, die Zählung, die Initialisierung etc. in der Liste enthalten sind.

Gruß
K-H
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
KetchUp

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

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 22. Nov 2018, 14:46
Das ist mein momentaner Stand.
Delphi-Quellcode:
  private
    { Private declarations }
  public
    { Public declarations }
  type
    TVocab = record
    German, English: string;
    Repetitions: Integer;
  end;
Delphi-Quellcode:
          Input:= E_UserGuess.Text;
          E_UserGuess.Text:= '';

          Answer:=AnsiCompareStr(Vocabulary.Names[RandomNumber], Input);

          If Answer=0
          Then //Antwort ist richtig
            Begin
              L_CorrectAnswer.Caption:='';
              Img_FeedBack.Picture.Bitmap.Assign(jpgCorrect);
              //Vocabulary.Delete(RandomNumber);
              Vocab.Repetitions[RandomNumber]:= Vocab.Repetitions[RandomNumber] - 1;
            End

          Else //Antwort ist falsch
            Begin
              L_CorrectAnswer.Caption:='Richtig wäre: '+(Vocabulary.Names[RandomNumber]);
              Img_FeedBack.Picture.Bitmap.Assign(jpgWrong);
              Vocab.Repetitions[RandomNumber]:= RepititionValue;

            End;
Jetzt kann ich meine Zufallszahl nicht mehr nutzen. Compiler sagt Array type required.
Meinst du mit in Liste packen sowas: List.Add(Vocab);?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 22. Nov 2018, 14:59
Hallo,

Repetitions: Integer;

Vocab.Repetitions[RandomNumber]


Was soll der Compiler dann machen, wenn das mit [] auf eine Integer-Variable zugreifst.

Und weiter oben hast Du ja korrekt benutzt
Vocabulary[RandomNumber]

Es müsste also heißen:
Vocabulary[RandomNumber].Repetitions:= Vocabulary[RandomNumber].Repetitions-1;
Heiko

Geändert von hoika (22. Nov 2018 um 15:02 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 14:05 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