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; //--------------------------------------------------------------------------- #endifcpp
//--------------------------------------------------------------------------- #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...
