Verursacht Konflikt mit Basisklasse...
-
Diese Fehlermeldung erhalte ich, wenn ich versuche die Funktion TEdit::AdjustSize zu redefinieren. Warum? Und wie kann ich die Funktion trotzdem redefinieren?
class PACKAGE TIntEdit : public TEdit { private: void __fastcall AdjustSize() { Font->Height = ClientHeight; } protected: public: __fastcall TIntEdit(TComponent* Owner); };Vielen Dank im Vorraus ... äh Voraus

-
Hallo Boto,
AdjustSize ist in TControl als
DYNAMIC void __fastcall AdjustSize(void);definiert.
Also die sollte Funktionieren:
class PACKAGE TIntEdit : public TEdit { private: DYNAMIC void __fastcall AdjustSize() { Font->Height = ClientHeight; } protected: public: __fastcall TIntEdit(TComponent* Owner); };Gruß
Peter.
-
Schick! Danke Peter ... aber was genau macht dieses Dynamic? ... interessiert mich, da ich mich (leider) nicht so gut mit c++ auskenne ...
LG
-
// sysmac.h #define DYNAMIC __declspec(dynamic) // For compatibility with Delphi's old virtual mechanismC++Builder 6-Dokumentation schrieb:
__declspec(dynamic)
Das Argument dynamic dient zur Deklaration von dynamischen Funktionen. Dynamische Funktionen ähneln virtuellen Funktionen, allerdings mit dem Unterschied, daß sie nur in den V-Tabellen für die Objekte gespeichert werden, in denen die Funktionen definiert sind, und nicht in V-Tabellen von Nachkommen. Wenn Sie eine dynamische Funktion aufrufen, die nicht in Ihrem Objekt definiert ist, wird die Funktion in den V-Tabellen seiner Vorfahren gesucht. Dynamische Funktionen sind nur bei Klassen zulässig, die von TObject abgeleitet sind.