问题
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?
回答1:
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;
回答2:
Move Lines.Clear to overriden method CreateWnd. Underlying window control (multiline edit) doesn't exist during Create execution
来源:https://stackoverflow.com/questions/9850176/tmemo-descendant-with-empty-lines