Потомок TMemo с пустыми строками - PullRequest
3 голосов
/ 24 марта 2012

Мой потомок TMemo имеет конструктор

constructor TMyMemo.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Lines.Clear;
end;

Когда я помещаю TMyMemo в форму, я получаю сообщение об ошибке «У элемента управления нет родительского окна». Почему?

Ответы [ 2 ]

17 голосов
/ 24 марта 2012

Недавно созданная заметка не имеет содержания.Но контент добавляется, как только компонент получает имя, что автоматически делается дизайнером.Чтобы предотвратить это, удалите csSetCaption из ControlStyle:

constructor TMyMemo.Create(AOwner: TComponent); 
begin 
  inherited Create(AOwner); 
  ControlStyle := ControlStyle - [csSetCaption];
end; 
0 голосов
/ 24 марта 2012

Переместить Lines.Clear для переопределения метода CreateWnd. Базовое управление окном (многострочное редактирование) не существует во время выполнения Create

...