Problem mit TStrinListDelete (int);



  • Hallo zusammen.
    Ich bin gerade einen Vokabeltrainer zu programieren.
    Das gerüst steht, aber es nervt mich, das oft Vokabeln wiederholt werden:

    //---------------------------------------------------------------------------
    #include <vcl\vcl.h>
    #pragma hdrstop
    #include "Voktrai.h"
    //---------------------------------------------------------------------------
    #pragma resource "*.dfm"
    TForm1 *Form1;
    TStringList *Latein;
    TStringList *Deutsch;
    String DateiDeutsch = "Deutsch1.txt";
    String DateiLatein ="Latein1.txt";
    int Nr;
    
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void TForm1::Abfrage (void)
    {
    
     if (Edit->Text == Deutsch->Strings[Nr])//Vokabelbedeutung wird gecheckt
     {
      Application->MessageBox ("Richtig!", "Rückmeldung", 0+64); // wenn richtig...
      Edit->Text = "";
     Edit->SetFocus();
    Latein->Strings->delete(Nr);/*um Wiederholungen zu vermeiden werden Vokabeln, die richtig 
    eingegeben wurden, gelöscht, funktioniert aber nicht*/
    
    Nr = random(Latein->Count);//Nächste Latein Vokabel wird ausgewählt
     Label1->Caption= "Latein: " + Latein->Strings[Nr];//und angezeigt
     }     // und so weiter [....]
    }
    //--------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    randomize();
    Latein = new TStringList;
    Deutsch = new TStringList;
    Latein->LoadFromFile (DateiLatein);
    Deutsch->LoadFromFile (DateiDeutsch);
    
    }
    

    Aber der Compiler spuckt mir nur eine Fehlermeldung aus:
    Pointer to structure required on left side of -> or ->*.
    Ich weiß nicht was das zu bedeuten hat. 😕 😕 😕 😞

    mfg Manuel



  • Hallo ManuelM

    in Zeile 29 Latein->Strings->delete(Nr);/
    muß heissen Latein->Delete(Nr);/

    mfg Schlumpi



  • Hallo,

    es muss lauten:

    Latein->Delete(Nr);
    

    Gruß Peter.



  • Danke Leute, es funktioniert bestens.


Anmelden zum Antworten