Funktion wohin?



  • Hallo, ich weis zwar wie man eine Funktion schreibt(zumindestens kann ich es in C, hab aber bei BCB meine Probleme). Meine Funktionen sehen z.B. so aus:

    void Rot(void)
    {
    Label1->Color=clRed;
    }
    

    Aber wo muss ch jetzt diese Funktion hinschreiben damit sie global funktioniert?
    😕



  • Du willst dabei auf Objekte derv Form zugreifen!
    Also muss die Funktion Member der Form sein!

    Deklaration in Header der Form unter private:
    Definition in cpp- Datei der Form.
    so:

    void Form1::Rot(void)
    {
      Label1->Color=clRed;
    }
    


  • Achja, und bei funktionen ohne Rückgabewert schreibt unter C++ keine Sau mehr das "void" in die Klammer. Lass die einfach leer.



  • Hab die jetzt in die Header-Fatei unter private eingetragen. Und wie kann ich die jetzt aufrufen? Sie heißt Feld01. Normaler weise ruft man die doch so auf:

    Feld01();
    

    Unter C bekomm ichs ohne Probleme hin, aber unter C++ irgend wie nicht. 😞



  • Ich habe dir da ein Kleines Beispiel.. sollte dir weiterhelfen:
    Header

    //---------------------------------------------------------------------------
    
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Von der IDE verwaltete Komponenten
       TButton *Button1;
       TEdit *Edit1;
       void __fastcall Button1Click(TObject *Sender);
    private:	// Anwender-Deklarationen
       int __fastcall Hoch2(int Zahl);
    public:		// Anwender-Deklarationen
       __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    

    cpp

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
       : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    int __fastcall TForm1::Hoch2(int Zahl)
    {
       return(Zahl*Zahl);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       ShowMessage(Hoch2(Edit1->Text.ToIntDef(0)));
    }
    //---------------------------------------------------------------------------
    

    Was public, private etc heissen kannst du gut in derBCB-Hilfe nachlesen

    BigNeal



  • C++Progger schrieb:

    Achja, und bei funktionen ohne Rückgabewert schreibt unter C++ keine Sau mehr das "void" in die Klammer. Lass die einfach leer.

    Ähm, du meinst sicher: "Ohne Parameter".



  • BigNeal schrieb:

    Was public, private etc heissen kannst du gut in derBCB-Hilfe nachlesen

    Oder in jedem verdammten C++ Einsteigerbuch. Die werden aus gutem Grund gedruckt... 🙄


Anmelden zum Antworten