Problem mit einer Klasse :)
-
Hallöchen.
Ich habe in Delphi folgende Klasse
type TAdvEditEditLink = class(TEditLink) private fEdit:TAdvEdit; protected procedure EditExit(Sender:TObject); public procedure CreateEditor(aParent:TWinControl); override; procedure DestroyEditor; override; function GetEditorValue:string; override; procedure SetEditorValue(s:string); override; function GetEditControl:TWinControl; override; end;
und möchte dies in C++Builder übertragen, leider werde ich mit Errors erschlagen und weiss nicht genau wo der Fehler liegt. Wäre super wenn man mir unter die Arme greifen würde und bei der Lösung hilft. Danke
Aktuell schaut es so aus
class TAdvEditEditLink : TEditLink { private: TEdit *fEdit; protected: void EditExit(TObject *Sender); public: void CreateEditor(TWinControl *aParent); virtual; void DestroyEditor(); virtual; AnsiString GetEditorValue(); virtual; void SetEditorValue(AnsiString S); virtual; TWinControl *GetEditControl(); virtual; };
[C++ Fehler] Unit1.h(27): E2113 Virtuelle Funktion 'TAdvEditEditLink::CreateEditor(TWinControl *)' verursacht Konflikte mit der Basisklasse 'TEditLink' [C++ Fehler] Unit1.h(27): E2321 Deklaration deklariert weder ein Tag noch einen Bezeichner. [C++ Fehler] Unit1.h(28): E2113 Virtuelle Funktion 'TAdvEditEditLink::DestroyEditor()' verursacht Konflikte mit der Basisklasse 'TEditLink' [C++ Fehler] Unit1.h(28): E2321 Deklaration deklariert weder ein Tag noch einen Bezeichner. ...
-
Bin schon glaub etwas weiter gekommen
Aber die letzte Zeile gibt es leider noch Fehler ausDelphi: function GetEditControl:TWinControl; override;
C++Bilder: virtual __fastcall TWinControl GetEditControl(); // ErrorWeiss da wer weiter?
class TAdvEditEditLink : TEditLink { private: TEdit *fEdit; protected: void __fastcall EditExit(TObject *Sender); public: virtual void __fastcall CreateEditor(TWinControl *aParent); virtual void __fastcall DestroyEditor(); virtual __fastcall AnsiString GetEditorValue(); virtual void __fastcall SetEditorValue(AnsiString S); virtual __fastcall TWinControl GetEditControl(); };
-
welche Fehlern denn ?
Du willst vermutlich einen Zeiger auf ein WinControl Feld bekommen also fehlt der Stern nach TWinControl:
virtual __fastcall TWinControl* GetEditControl();
-
Danke, hab es bereits so gelöst und compiliert ohne Fehlermeldungen.
Hoffe das stimmt so allesControls::TWinControl* __fastcall GetEditControl();