Branko
Branko

Reputation: 1458

TMemo descendant with empty lines

My TMemo descendant has constructor

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

When I put TMyMemo on the form I get error "Control '' has no parent window.". Why?

Upvotes: 3

Views: 631

Answers (2)

NGLN
NGLN

Reputation: 43659

A newly created memo has no content. But content is added as soon as the component acquires a name, which is done automatically by the designer. To prevent this, remove csSetCaption from ControlStyle:

constructor TMyMemo.Create(AOwner: TComponent); 
begin 
  inherited Create(AOwner); 
  ControlStyle := ControlStyle - [csSetCaption];
end; 

Upvotes: 17

MBo
MBo

Reputation: 80197

Move Lines.Clear to overriden method CreateWnd. Underlying window control (multiline edit) doesn't exist during Create execution

Upvotes: 0

Related Questions