让 C++Builder 派生的 vcl 控件类与表单设计器一起使用?

问题描述 投票:0回答:1

我想做一些简单的事情,覆盖

WM_COPY
控件的
TEdit

如果我尝试使用以下内容,您将无法更改

.dfm
中的类型,或者它会抱怨它不存在,因此您必须保留它
TEdit
。但现在,当保存
.h/.cpp
时,抱怨它应该是
TEdit
,而我希望它是
TMyEdit

在 MyForm.h 中:

class TMyEdit : public TEdit
{
    private:
        virtual void __fastcall WndProc(TMessage &Message);
};

//---------------------------------------------------------------------------
class TMyForm : public TForm
{
  // ...
  TMyEdit *m_MyEditCtl; // previously TEdit *m_MyEditCtl
  // ...
};

在MyForm.cpp中

// ...
void __fastcall TMyEdit::WndProc(TMessage &Message)
{
    if (Message.Msg == WM_COPY) {
      // I'll handle it ....
    }
    else {
        __super::WndProc(Message);
    }
}
// ...

在 C++Builder 中执行此操作的正确方法是什么,以便它可以在表单和 C++ 源文件中工作?

蒂亚!!

c++builder
1个回答
0
投票

设计时控件必须安装在IDE中。因此,您必须将

TMyEdit
类移至单独的
.BPL
包中,然后将该包安装到 IDE 中,以便它可以注册您的类。只有这样,您才能在设计时将您的类与表单设计器一起使用。

阅读 Embarcadero 的文档:组件创建简介

© www.soinside.com 2019 - 2024. All rights reserved.