【发布时间】:2010-07-13 17:50:13
【问题描述】:
在 Codegear C++ Builder 中,我试图扩展 TMemo VCL 类以在 OnKeyDown 事件期间执行某些功能。我已经设置了控件,并且能够将其添加到表单等中。问题是我无法捕获 OnKeyDown 事件(或任何其他事件)。
这是我的课:
class PACKAGE TREMemoFind : public TMemo
{
private:
TFindDialog *FindDialog;
protected:
void __fastcall MemoKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
public:
__fastcall TREMemoFind(TComponent* Owner);
__published:
};
__fastcall TREMemoFind::TREMemoFind(TComponent* Owner) : TMemo(Owner)
{
ScrollBars = ssVertical;
OnKeyDown = MemoKeyDown;
}
void __fastcall TREMemoFind::MemoKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
ShowMessage("It worked!");
}
所以,我想我的问题是:如何设置从 VCL 类派生的类以在某个事件触发时执行自定义功能?
【问题讨论】:
-
没关系。显然,我做对了。尽管反复重新编译,Codegear 并没有将我的更新合并到我的测试控制中。无论如何,它现在有效。在这个职位上采取什么适当的步骤?我应该投票赞成删除吗?
标签: c++ event-handling c++builder vcl tmemo