Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2016, 14:38   #11
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от TaLadno Посмотреть сообщение
Посмотри в той теме, как ты наследника делал для TButton и как делаешь для TListBox - найди 100500 отличий, хотя бы для конструктора
Код:

type
  TMyListBox = class(TListBox)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy;
  published
    { Published declarations }

  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('My', [TMyListBox]);
end;

constructor TMyListBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;

destructor TMyListBox.Destroy;
begin
  inherited;
end;
Где тут отличия?
BLACK_RAIN вне форума Ответить с цитированием
Старый 23.05.2016, 15:03   #12
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

если создавать компонент в коде, то работает. А на форму не бросается. Почему?
BLACK_RAIN вне форума Ответить с цитированием
Старый 23.05.2016, 17:47   #13
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
Лампочка новые события добавь

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
если создавать компонент в коде, то работает. А на форму не бросается. Почему?
новые события добавите, например: MouseEnter и MouseLeave

Код:
type
  TMyListBox = class(TListBox)
  private
    { Private declarations }
    FOnMouseLeave: TNotifyEvent;
    FOnMouseEnter: TNotifyEvent;
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    { Published declarations }
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
    property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Standard', [TMyListBox]);
end;

{ TMyListBox }

procedure TMyListBox.CMMouseEnter(var Message: TMessage);
begin
  if Assigned(FOnMouseEnter) then
    FOnMouseEnter(Self);
end;

procedure TMyListBox.CMMouseLeave(var Message: TMessage);
begin
  if Assigned(FOnMouseLeave) then
    FOnMouseLeave(Self);
end;

end.
Вложения
Тип файла: zip MyListBox.zip (1.8 Кб, 10 просмотров)

Последний раз редактировалось beegl; 23.05.2016 в 17:58. Причина: edit code, add zip
beegl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать свой язык программирования? future7 Свободное общение 19 05.05.2015 01:08
как создать свой курсор darya19 Visual C++ 1 15.03.2013 14:32
Как создать свой компонент? Д'якон Компоненты Delphi 1 21.05.2008 16:37
Как создать свой формат? Rahim1993 Общие вопросы Delphi 2 04.03.2008 17:04