Von TStringList zu TStrings = Fehler?



  • Wieso bekomm ich hier den Fehler das er nicht TStringList zu TStrings konventieren kann?:

    TStringList *ValueEintrage;
    AnsiString *Namen;
    int *ValueAnzahl;
    void __fastcall ASRAgent::Execute()
    {
    int CheckingCount = Form1->ListBox1->Items->Count;
    
    Namen = new AnsiString[CheckingCount];
    ValueAnzahl[CheckingCount];
    ValueEintrage = new TStringList[CheckingCount];
    Regedit = new TRegistry();
    
    while(Form1->CheckBox1->Checked) {
    for (int i=0;i<CheckingCount;i++)
    {
    Regedit->CloseKey();
    Regedit->RootKey = HKEY_LOCAL_MACHINE;
    Regedit->OpenKey(Form1->ListBox1->Items->Strings[i],false);
    Regedit->GetValueNames(ValueEintrage[i]); //<<<... hier bekomm ich den fehler! Weil ich die Stringlist synamisch erzeugt hab?
    
    ValueAnzahl[i] = ValueEintrage[i]->Count;
    Synchronize(DoCheck);
    Sleep(4000);
    }
    }
    
    }
    //---------------------------------------------------------------------------
    


  • schreib:

    Regedit->GetValueNames(dynamic_cast<TStrings*>(ValueEintrage[i]));
    


  • Schau nochmals wie du das TStringList-Array deklariert hast....

    -junix



  • @Andreas:

    Implizite Upcasts funktionieren eigentlich ganz gut und sind eigentlich völlig unnötig... (ausser natürlich zu dokumentationszwecken (o: ) Ich befürchte, du bist hier auf dem holzweg. (o:

    -junix


Anmelden zum Antworten