2012-03-24 3 views
3

내 잇는 TMemo의 후손 잇는 TMemo의 후손

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

생성자

있다 "컨트롤 '부모 윈도우가 없습니다.". 왜?

+2

당신이 설정을 무시하면 당신이 처음부터 선을 게시하는 이유는. 대신 TCustomMemo에서 파생됩니다. –

+2

@David - 양식에 "비어있는"메모를 쓰려고합니다. 흔히/항상 TMemo를 내가 명확한 형태로 넣습니다. 나는 매우 게으르다. – Branko

+4

당신은 지금 훌륭한 대답을 가지고있다. 그러나이 질문은 당신이 근본적인 문제를 설명해야하는 이유에 대한 좋은 예이다. –

답변

17

새로 만든 메모에는 내용이 없습니다. 그러나 구성 요소가 이름을 얻자 마자 내용이 추가되며 이는 디자이너가 자동으로 수행합니다. 이를 방지하기 위해, ControlStyle에서 csSetCaption을 제거 :

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

언제나 그렇듯 - 좋은 설명이있는 해결책. 고맙습니다! – Branko

+2

좋은 답변입니다. 나는 MyPanel과 MyEdit도 만들 것이라고 생각한다. :) 또는 디자이너에서 전환 할 수있는 옵션입니까? – GolezTrol

0

Move Lines.Clear를 사용하면 CreateWnd 메서드를 재정의 할 수 있습니다. 만들기 실행 중에 기본 창 컨트롤 (여러 줄 편집)이 없습니다.

+4

'CreateWnd'가 호출 될 때마다 내용을 지 웁니다. 생각보다 더 많이 발생합니다. – NGLN

관련 문제