Delphi-PRAXiS
Seite 9 von 11   « Erste     789 1011      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Elemente aus TStringList in Laufzeit entfernen (https://www.delphipraxis.net/198592-elemente-aus-tstringlist-laufzeit-entfernen.html)

KetchUp 23. Nov 2018 15:03

AW: Elemente aus TStringList in Laufzeit entfernen
 
Zitat:

Zitat von DieDolly (Beitrag 1418937)
Es ist eine Liste gemeint, um die Records aufzunehmen.

Dann ist es doch
Code:
List.Add(Vocab);
Aber wie deklarier ich das, sie enthält ja Strings und Integer-Werte?

DieDolly 23. Nov 2018 15:06

AW: Elemente aus TStringList in Laufzeit entfernen
 
Als aller erstes musst du verstehen, dass du deine TStringList nur brauchst, um TList zu befüllen. Danach brauchst du die TStringListe nie wieder. Alles weitere passiert über die TList wo du ja schon jetzt alle deine Vokabeln samt Zähler drin hast.

KetchUp 23. Nov 2018 16:02

AW: Elemente aus TStringList in Laufzeit entfernen
 
Die Liste funktioniert jetzt schon, ich kann sie aber nicht füllen.

Sie ist deklariert als:
Delphi-Quellcode:
var List: TList;
Wenn ich ihr aber die Vokabeln zuweise sagt der Compiler "Incompatible types: Pointer and TForm2.TVocab"
Delphi-Quellcode:
List.Add(Vocab);

p80286 23. Nov 2018 17:37

AW: Elemente aus TStringList in Laufzeit entfernen
 
das geht ungefähr so:
Delphi-Quellcode:
type
  myrecord=engtext:string;
           gertext:string;
           Repetition:integer;
    end;

var
  pmyrecord=^myrecord;


.....
  new(pmyrecord);
  pmyrecord^.engtext:=Englischertext;
  pmyrecord^.gertext:=Deutschertext;
  pmyrecord^.Repetition:=3;

 liste.add(pmyrecord);
....

procedure ListFree;
var
  pmyrecord:^myrecord;
begin
  for i:=0 to liste.count-1 do begin
    pmyrecord:=liste.item[i];
    dispose(pmyrecord);
  end;
  liste.free; //der freeandnil falls auf Nil getestet wird
end;
ohne Gewähr da nur so runter getippt;

Gruß
K-H

DieDolly 23. Nov 2018 17:41

AW: Elemente aus TStringList in Laufzeit entfernen
 
Wenn dann so :P

Delphi-Quellcode:
type
 pmyrecord = ^myrecord;

 myrecord = record
  engtext: string;
  gertext: string;
  Repetition: integer;
 end;

KodeZwerg 23. Nov 2018 18:13

AW: Elemente aus TStringList in Laufzeit entfernen
 
*entfernt*

p80286 23. Nov 2018 20:12

AW: Elemente aus TStringList in Laufzeit entfernen
 
Zitat:

Zitat von DieDolly (Beitrag 1418969)
Wenn dann so :P

:oops: zwischen Tür und Angel getippt :oops:

gruß
K-H

KetchUp 23. Nov 2018 23:05

AW: Elemente aus TStringList in Laufzeit entfernen
 
Danke für den Code aber ich blicke immer noch nicht durch :cry:

Delphi-Quellcode:
 
pmyrecord = ^myrecord; // Record declarieren. Aber warum auf einmal das "^" Zeichen?

 myrecord = record // festlegen, dass ich ein Record verwenden will?
  engtext: string; //"Container" für die englischen Vokabeln, richtig?
  gertext: string; //"Container" für die deutschen Vokabeln, richtig?
  Repetition: integer; //"Container" für die Wiederholungen, richtig?
Delphi-Quellcode:
var

  new(pmyrecord); //Was ist das?
  pmyrecord^.engtext:=Englischertext; // müsste das nicht heißen: pmyrecord^.engtext:= Vocabulary.Names[i];
  pmyrecord^.gertext:=Deutschertext; // müsste das nicht heißen: pmyrecord^.gertext:= Vocabulary.ValueFromIndex[i]
  pmyrecord^.Repetition:=3;

HolgerX 24. Nov 2018 11:42

AW: Elemente aus TStringList in Laufzeit entfernen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..

(Wieso immer mit Records bei Listen gearbeitet wird... ;) )

Angehängt ein 'einfaches' Beispiel, wie mann mit einer TObjectList und einer Klasse für die Vokabeln einen einfaches Übungsprogramm machen kann.

Inklusive der Option, das eine falsche Lösung 3x für das Wort wiederholt werden kann und es erst dann aus der Liste entfernt wird.

Auf grafische Spielereien habe ich zunächst verzichtet, da es nur um die 'Funktion' als Beispiel geht...

Viel Spaß damit..

( Mit D6 mal so zusammen getippt ;) )

DieDolly 24. Nov 2018 13:33

AW: Elemente aus TStringList in Laufzeit entfernen
 
Also einfach sieht für einen Anfänger bestimmt anders aus :P
Dafür ist es aber korrekt und der richtige Weg.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr.
Seite 9 von 11   « Erste     789 1011      

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