【问题标题】:C++ Borland Builder forms - calling a functionC++ Borland Builder 表单 - 调用函数
【发布时间】:2012-07-11 02:05:46
【问题描述】:

C++ 新手非常抱歉,如果这是一个基本问题!我习惯了 Java(哦,是的!太容易了)。

我在 addMessages 下面的函数是从另一个文件调用的,然后它将实际运行__fastcall TfrmRunning::Add()。因为我无法从另一个文件中得到这个工作。 add 是TdrmRunning 对象的一部分)

如何获取添加消息以调用添加函数?


这是来自 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
}

我的头文件(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();

【问题讨论】:

  • 尝试在 _published 部分中添加 not.. 将其放在标题的公共部分中。

标签: c++ c++builder


【解决方案1】:

Add() 不是TfrmRunning 的静态函数。

您需要一个TfrmRunning 类型的对象来调用它。

【讨论】:

  • 谢谢,有什么办法可以做到这一点吗?对 C++ 来说非常新。谢谢:D
  • 例如,您可以将指向TfrmRunning 对象的指针传递给addMessages 函数,像这样void addMessages(TfrmRunning *ptr){ ptr->Add(); } 另一个问题是您在哪里创建TfrmRunning 类的对象?
  • 它只是从以前的表单中调用的。
  • 我需要查看更多代码。或者您可以将Add() 函数设为静态:static void __fastcall Add();。但我认为这是个坏主意。
【解决方案2】:

尝试使用

TObjetct *asd;
Add(asd);

【讨论】:

    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 2021-12-01
    • 2014-12-10
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2010-09-25
    相关资源
    最近更新 更多