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