Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Конструктор наследника TComboBox


Автор: cyberstream 23.8.2012, 19:13
Здравствуйте!
Взялся переписывать с Delphi, дошёл до "ничего не понимаю"…
Имеется:
Код

class TnpACComboBox: public TComboBox
{
 public:
    __fastcall virtual TnpACComboBox(Classes::TComponent* AOwner);
    __fastcall virtual ~TnpACComboBox(void);


 public:
    inline bool Assigned(void* p) { return p != NULL; }

public:
    #pragma option push -w-inl
    /* TWinControl.CreateParented */ inline __fastcall TnpACComboBox(HWND ParentWindow) : TComboBox(ParentWindow) { }
    #pragma option pop

};//==========================================================================*/

__fastcall TnpACComboBox::TnpACComboBox(TComponent* Owner)   : TComboBox(Owner)
{ AutoDropDown = true; //__ <- значение меняется, поведение - нет! ( 
  AutoComplete = false;

};//==========================================================================*/

__fastcall TnpACComboBox::~TnpACComboBox(void)
{
};//==========================================================================*/
 В приложении
Код

#include <vcl.h>
#pragma hdrstop

#include "TestCode.h"
#include "npACComboBox.h"
//==========================================================================*/
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TnpACComboBox*   lcCombo;
TComboBox*   nativeCombo;
//==========================================================================*/
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{   }
//==========================================================================*/
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 lcCombo = new TnpACComboBox(this);
 lcCombo->Parent = this;
 lcCombo->Left = 10;
 lcCombo->Top = 10;
 lcCombo->Width = 200;
 lcCombo->Text = "Type smth… - AutoDropDown failed (  ";

 nativeCombo = new TComboBox(this);
 nativeCombo->Parent = this;
 nativeCombo->Left = 10;
 nativeCombo->Top = 50;
 nativeCombo->Width = 200;
 nativeCombo->AutoDropDown = true;
 nativeCombo->Text = "Type smth… - AutoDropDown working )";
}//==========================================================================*/
 складывается впечатление, будто криво наследуется от TComboBox-a, ибо не работает многое  … в данном случае - AutoDropDown. 
 При вводе строки в Сombobox-e обыкновенном вып. список раскрывается, а в созданном от производного - нет.

 Как исправить?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)