TStrings -> getKeyNames() -> Fehler (Registry)
-
Hi!
Bekomme beim Aufrufen dieser Funktion im laufenden Programm ne Fehlermeldung...( glaube EA..., allerdings wenn ich TStrings mit new erstelle kommt vom Compiler ich könne diese Abstrakte Klasse so nicht erstellen o.s.ä.)TStrings* TForm1::regload_Tabelle() { TStrings *s; //Eine neues TRegistry Object angelegen TRegistry& regkey=*new TRegistry(); //Wenn abweichend von HKEY_CURRENT_USER den RootKey setzen (das ist ein INT-Wert!!): regkey.RootKey=HKEY_LOCAL_MACHINE; //Den gewünschten Schlüssel vorgeben //hier jetzt false (nur lesen wenn auch da) bool keygood=regkey.OpenKey("Software\\Planer",false); //Wenn ein gültiger Schlüssel da ist if(keygood) { //Wenn unser Wert da ist if(regkey.ValueExists("Sprache")) { //wird er in die Variable bo (bool) gelesen regkey.GetKeyNames(s); }else{ sprache = 1; } } //Registry schliessen regkey.CloseKey(); //Objekt löschen delete ®key; return s; } //---------------------------------------------------------------------------thx
-
Hallo
TStrings ist wie der Compiler und auch die BCB-Hilfe dir sagt eine abstrakte Basisklasse, nur ein Interface. Es hat keine Implementation.
Du must TStringList als Instanz nehmen, diese Klasse ist von TStrings abgeleitet und ist dank Polymorphie als Pointer in einen Pointer von TStrings umwandelbar.TStrings *s = new TStringList;Ich empfehle die Grundlagen von OOP in C++ zu lernen.
bis bald
akari
-
s ist NULL und darum wird das natürlich nix. Wie du schon bemerkt hast, kann man TStrings nicht instanzieren. TStringList aber schon

Und TStringList sollte prinzipiell von der Funktion akzeptiert werden.mfg
xXxEdit: zu spät

-
@akari nur weil ich mich mit polymorphi nicht so doll auskenn muss das doch net heißen das ich kein oop kann... *heul* ^^
ABER: ein GROßES DANKESCHÖN

-
Hallo
Das Problem ist das aber grade die VCL des Builders sehr stark auf Polymorphie aufsetzt. Das fängt schon an wenn du aus einem Standard-Event den Parameter Sender als eine bestimmte Komponentenart behandeln willst. Ohne das Wissen über Sinn und Anwendung von Polymorphie kommst du da nicht weit

bis bald
akari
-
Da könntest du recht haben, ich werd mir deinen Vorschlag zu Herzen nehmen, und mir mal die Polymorphie reinziehen.
