2012-07-11 5 views
1

Nouveau en C++ donc désolé si c'est une question de base! Je suis habitué à Java (oh yess! Si facile).C++ Borland Builder formes - appelant une fonction

Ma fonction ci-dessous addMessages est appelée à partir d'un autre fichier, elle exécute alors réellement __fastcall TfrmRunning::Add(). Comme je ne pouvais pas obtenir ce travail de l'autre fichier. l'ajout fait partie de l'objet TdrmRunning)

Comment puis-je obtenir les messages d'ajout pour appeler la fonction Ajouter?


C'est de Running.cpp

void __fastcall TfrmRunning::Add() 
{ 
    lbMessages->Items->Add("Application Started at "); 
} 
//This is called from another file as i could not get the above function working 
void addMessages(){ 
    TfrmRunning::Add(); // this does not work 
} 

Mon fichier d'en-tête (Running.H)

class TfrmRunning : public TForm 
{ 
__published: // IDE-managed Components 
    TImage *imgLogo; 
    TLabel *lblCopyRight; 
    TLabel *lblTitle; 
    TButton *btnExit; 
TButton *btnViewType; 
TListBox *lbMessages; 
void __fastcall btnExitClick(TObject *Sender); 
void __fastcall FormCreate(TObject *Sender); 
void __fastcall Add(); 
private: // User declarations 
public:  // User declarations 
__fastcall TfrmRunning(TComponent* Owner); 
}; 
void addMessages(); 
+0

Essayez de faire Ajouter pas dans la section _published .. mettre dans la section publique de votre tête. –

Répondre

1

Add() est pas une fonction statique TfrmRunning.

Vous aurez besoin d'un objet de type TfrmRunning pour l'appeler.

+0

Merci, Des idées comment je peux le faire? Très nouveau pour C++. Merci: D – JP29

+0

Par exemple, vous pouvez passer le pointeur à l'objet 'TfrmRunning' à la fonction' addMessages', comme ceci 'void addMessages (TfrmRunning * ptr) { ptr-> Add(); } ' Une autre question est où vous créez l'objet de la classe' TfrmRunning'? – flamingo

+0

il est juste appelé à partir d'un formulaire précédent. – JP29

-1

Essayez d'utiliser

TObjetct *asd; 
Add(asd); 
Questions connexes