2016-10-09 3 views
1

스타일 모음을 포함하는 (시각적이지 않은) 디자인 타임 구성 요소가있는 기본 VCL 폼 클래스를 정의했습니다.파생 된 폼에서 디자인 타임 구성 요소를 수정하는 것을 방지하는 방법

개발자 (및 나 자신)가 내 기본 양식에서 파생 된 양식의 스타일을 변경하지 못하도록하고 싶습니다. C# 용어로 말하면 구성 요소를 기본 VCL 형식으로 봉인하고 싶습니다.

어떻게하면됩니까?

사이드 노트 : 필자는 델파이의 폼에있는 designtime 컴포넌트의 선언을 이해하지 못했지만, 클래스 선언의 public 섹션에는 배치되지 않았습니다. 아무도 이것에 대한 이유를 설명 할 수 있습니까?

+0

일반적으로 자기 분야의 응용이 그 일을합니다. –

+2

개인 정보 보호 및 공공 재산에 대한 필요성이없는 것보다 자기 관리가 필요하다면 거기에 있습니까? ......... – Bascy

+2

가시성 수준이 더 높습니다. 또한 인터페이스가 무엇인지에 대한 문서를 제공합니다. 귀하의 질문에 관해서는 현재 귀하의 현재 코드를 파악할 수 없습니다. –

답변

1

글쎄, 짧은 대답은 할 수 없습니다. 당신이 정말로 그것을 필요로하는 경우 런타임에 구성 요소를 만들고 비공개로 만들 것을 제안합니다. GExpert (click here)를 사용하는 경우 "구성 요소를 코드화합니다"명령을 사용하여 필요한 코드를 얻을 수 있습니다. 자세한 내용이 필요하면 DFM 파일을 공유하십시오. 여기에 해당 코드를 게시합니다.

덧붙여 말하면, 구성 요소는 으로 게시됩니다. 회원의 선언이 나타납니다 Visibility of Class Members 인용

만약 자신의 가시성 지정하지 않고 참조, 회원은 가 앞에있는 것과 같은 가시성을 가지고있다. 가시성을 지정하지 않은 클래스 선언의 시작 부분에있는 클래스는 기본적으로 {$ M +} 상태로 컴파일 된 이거나 {$ M +} 상태로 컴파일 된 클래스에서 파생되었습니다. 그렇지 않으면, 이러한 부재는 구성 요소를 지정한다 게시 선언 TComponent.SetName (실제로 TComponent.SetReference) 필요

PS{$M+} 지시자 컴파일 TPersistent의 자손은 NBTForm

공개되어있다 Name 속성을 수정할 때 해당 필드를 참조하십시오.