powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание компонента TButtonEdit
6 сообщений из 6, страница 1 из 1
Создание компонента TButtonEdit
    #34701767
ArtK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если делать TEdit с кнопкой в runtime таким образом, то все ок, но если сделать компонент, то когда его кидаешь на форму - кнопка видна, запускаешь - кнопки нет. Помогите разобраться

это h:
#ifndef BEditH
#define BEditH
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Classes.hpp>
#include <Controls.hpp> ftinclude <StdCtrls.hpp>
///#include <StdCtrls.hpp>
//---------------------------------------------------------------------------
class PACKAGE TBEdit : public TEdit
{
private:
void __fastcall OnButtonClick(TObject *Sender);
protected:
public:
TButton *Button ;
__fastcall TBEdit(TComponent* Owner);
__fastcall ~TBEdit() {delete Button;};
__published:

};
//---------------------------------------------------------------------------
#endif


это .cpp:
static inline void ValidCtrCheck(TBEdit *)
{
new TBEdit(NULL);
}
//---------------------------------------------------------------------------
__fastcall TBEdit::TBEdit(TComponent* Owner)
: TEdit(Owner)
{
Button = new TButton(this);
//Button = new TButton(this);
Button->Parent = this;
//this->InsertComponent(this->Button);
//this->Button->Parent = this;
// InitControl(Button);
}

//---------------------------------------------------------------------------
void __fastcall TBEdit::OnButtonClick(TObject *Sender)
{

}
//---------------------------------------------------------------------------
namespace Bedit
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TBEdit)};
RegisterComponents("Samples", classes, 0);
}
}
//---------------------------------------------------------------------------
...
Рейтинг: 0 / 0
Создание компонента TButtonEdit
    #34702073
TButtonEdit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
__fastcall TBEdit::TBEdit(TComponent* Owner)
: TEdit(Owner)
{
    Button = new TButton(this);
    Button->Visible = true;    
    Button->Parent = this;
}
Ещё стоило бы почитать Рэя Конопку "Создание оригинальных компонент... " и посмотреть уже существующие реализации в качестве примера.
...
Рейтинг: 0 / 0
Создание компонента TButtonEdit
    #34702991
ArtK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TButtonEdit
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
__fastcall TBEdit::TBEdit(TComponent* Owner)
: TEdit(Owner)
{
    Button = new TButton(this);
    Button->Visible = true;    
    Button->Parent = this;
}
Ещё стоило бы почитать Рэя Конопку "Создание оригинальных компонент... " и посмотреть уже существующие реализации в качестве примера.

Спасибо за книгу, но ваша конструкция тоже не показывает кнопку... возможно только у меня..
буду разбираться, спасибо еще раз
...
Рейтинг: 0 / 0
Создание компонента TButtonEdit
    #34702998
ArtK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее работает, если кидаешь на чистую форму в новом проекте, если допустим на GroupBox, то видно обычный TEdit, а кнопки нет

TButton *Button = new TButton(EditClient);
Button->Parent = EditClient;
Button->Align = alRight;
Button->Width = int(Button->Height/1.3);

вот если это в конструкторе формы написать то все ок, но хо'чу свою кампаненту очень...
...
Рейтинг: 0 / 0
Создание компонента TButtonEdit
    #34703141
TButtonEdit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ArtKТочнее работает, если кидаешь на чистую форму в новом проекте, если допустим на GroupBox, то видно обычный TEdit, а кнопки нет

TButton *Button = new TButton(EditClient);
Button->Parent = EditClient;
Button->Align = alRight;
Button->Width = int(Button->Height/1.3);

вот если это в конструкторе формы написать то все ок, но хо'чу свою кампаненту очень...

1. Готовых реализаций TButtonEdit'а в сети, думаю, немало. Посмотри в исходниках, как это у других реализовано.
2. За примером можно далеко не ходить - где-то в Examples\Controls\Source\ лежат исходники SpinEdit'a, можно их посмотреть.
3. Ну и книжку почитать, конечно ...
...
Рейтинг: 0 / 0
Создание компонента TButtonEdit
    #34703824
ArtK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TButtonEdit ArtKТочнее работает, если кидаешь на чистую форму в новом проекте, если допустим на GroupBox, то видно обычный TEdit, а кнопки нет

TButton *Button = new TButton(EditClient);
Button->Parent = EditClient;
Button->Align = alRight;
Button->Width = int(Button->Height/1.3);

вот если это в конструкторе формы написать то все ок, но хо'чу свою кампаненту очень...

1. Готовых реализаций TButtonEdit'а в сети, думаю, немало. Посмотри в исходниках, как это у других реализовано.
2. За примером можно далеко не ходить - где-то в Examples\Controls\Source\ лежат исходники SpinEdit'a, можно их посмотреть.
3. Ну и книжку почитать, конечно ...
Спасибо, spinEdit - рулит! )
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание компонента TButtonEdit
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]