Basismethode TEdit::OnPaint in Ableitung von TEdit aufrufen



  • Guten Morgen Leute,

    ich sitze gerade wieder an der Komponentenentwicklung und es klemmt schon am Anfang an allen möglichen Ecken und Enden. Ich versuche mittels Tutorial ein eigenes Edit zu erstellen, welches über eine checked-Eigenschaft und ein Ereignis OnAfterPaint verfügt. Die checked-Eigenschaft habe ich bereits eingefügt. Nun habe ich die Paint-Methode der Komponente überschrieben, um das Ereignis OnAfterPaint einfügen zu können... Der Compiler sagt mir jedoch für Zeile 20: undefined symbol: Paint

    //---------------------------------------------------------------------------
    #ifndef CheckEditH
    #define CheckEditH
    //---------------------------------------------------------------------------
    #include <SysUtils.hpp>
    #include <Controls.hpp>
    #include <Classes.hpp>
    #include <Forms.hpp>
    #include <StdCtrls.hpp>
    //---------------------------------------------------------------------------
    class PACKAGE TCheckEdit : public TEdit
    {
    private:
    	bool ibChked;
    protected:																		// nur für den Komponentenentwickler
    public:
    	__fastcall TCheckEdit(TComponent* Owner);
    	void __fastcall Paint()
    	{
    		TEdit::Paint();
    		// ... hier könnte ein Ereignis AfterPaint eingefügt werden,
    		// oder die Edit-Zeichnung erweitert werden ...
    	}
    __published:																	// im Objektinspektor - Designzeit-Schnittstelle
    	__property bool Checked= {read=ibChked, write=ibChked/*, default=true*/};	// default benennt Zustand der nicht gespeichert wird!!!
    };
    //---------------------------------------------------------------------------
    #endif
    

    Aber genau so stehts doch im Tutorial??? Was mache ich falsch? 😕

    Edit: Ist ja wirklich ein neues Thema wert - mein Fehler! 😞



  • TEdit hat keine Methode Paint()

    schau dir mal auf der Palette "Beispiele" die Komponente CSpinEdit an, auch diese ist von TEdit abgeleitet. Einfach TCSpinEdit im QuellText eingeben und dann Mauszeiger drauf, Strg drücken und klicken.



  • Hallo Linnea,

    wenn ich deiner Anleitung folge tut sich leider überhaupt nichts in meinem BCB3. Sollte ich mir lt. deiner Anleitung den Quelltext des TCSpinEdit anschauen können (wenn's denn ginge)? Ich würde mir ja gerne mal den Quelltext der Komponenten anschauen, aber bisher habe ich noch keinen Weg gefunden dies zu tun!



  • Hallo

    Die Headerdatei zu TSpinEdit ist unter <BCB-Path>/Include/vcl/spin.h zu finden. Soweit ich das sehen kann wurde dem Edit einfach noch der SpinButton als zusätzliche interne Komponente mitgegeben. Das kannst du ja auch machen. Pack ein TCheckBox in dein TEdit, dann brauchst du auch nicht selber zu zeichnen.

    bis bald
    akari



  • hast du die Komponete denn bei deinem BCB mit dabei? alternativ kannst du auch im BCB-Verzeichnis nach cspin.cpp im Examples-Ordner suchen



  • akari schrieb:

    Soweit ich das sehen kann wurde dem Edit einfach noch der SpinButton als zusätzliche interne Komponente mitgegeben. Das kannst du ja auch machen. Pack ein TCheckBox in dein TEdit, dann brauchst du auch nicht selber zu zeichnen.

    Ok, wenn ich aus dem Quellcode schlau werde, probiere ich deinen Vorschlag umzusetzen.

    Linnea schrieb:

    hast du die Komponete denn bei deinem BCB mit dabei?

    Ja, die Komponente ist vorhanden aber es passiert halt nix bei Strg+Click im Quelltext.

    Linnea schrieb:

    alternativ kannst du auch im BCB-Verzeichnis nach cspin.cpp im Examples-Ordner suchen

    super, hab' ich gefunden - Danke.


Log in to reply