2012-06-28 3 views
4

한 데이터 모듈의 구성 요소를 복사하여 Delphi XE2의 다른 데이터 모듈에 붙여 넣으려고했습니다. 구성 요소는 빠른 보고서 데이터 원본 링크 구성 요소입니다. 데이터 모듈은 아주 새롭고, XE2에서 바로 생성되었습니다. 다른Delphi XE2의 TDataModule.ClassGroup 의사 속성이 실제로하는 일은 무엇입니까?

사람이 같은 문제를 가지고 있었고, 저를 선도 quality central as 106369과 같은 오류 메시지를보고이 mysterious DocWiki entry.

그래서 데이터 모듈은 이제 프레임 워크 친화력을 가지고 있고, 문서에 따른 디자인 타임 전용 의사 재산, :

"ClassGroup 의사 속성은 IDE에서만 사용되며 컴파일러에서 생성 한 속성 ('pseudo-property')이 아니기 때문에 ClassGroup은 컴파일러에서 생성 한 Libraries Reference에 문서화되어 있지 않습니다. 당신은 ClassGroup 설명서를 읽고 있습니다. "

처음부터 다시 작성하기를 원하지 않는 기존 설계 블록 세트의 구성 요소를 복사하여 붙여 넣기하지 못하게하는 것은 처음으로 배우는 것입니다.

일단 데이터 모듈 연관 관계를 변경하면 데이터 모듈에 데이터를 붙여 넣을 수 있습니다. Google-that-error에 대한 감사의 말을 전합니다.

크로스 플랫폼 데이터 모듈을 작성하는 데 도움이되고 문서에 따르면 IDE에서 영향을받는 경우,이 코드는 설계시에 재생할 때 발생하는 경고와 일치하지 않습니다. 당신이 그것을 변경하는 경우 얻을 :

EInvalidType : The following component(s) are not available in the specified 
class group. This is likely to cause compile or runtime errors. 
frxDBSet.TfrxDBDataset. 

은 내가 볼 수없는 것은 그 오류 메시지가 올 수 있으며, 문서는 올바른 될 수있는 방법입니다.

경고가 잘못 설정되면 컴파일, 링크 및 런타임 오류가 발생하는 것으로 보입니다. 정말로 진행되고있는 것을 알고 싶어하는 궁금한 마음, 알고 싶습니다. XE2의 데이터 모듈에이 점이 무엇이며 왜 추가 되었습니까? 나는 다른 사람들이 공룡 배설물과 같은 뭔가를 밟았으며이 특징이 무엇인지 알고 싶어하는 이상한 특성에 비틀 거릴 것으로 예상한다.

이 시점에서 가장 좋은 대답은 TPersistent에 대한 데이터 모듈 친 화성입니다. 즉, XE2 용어에서이 데이터 모듈은이 데이터 모듈이 VCL 특정 비 시각적 컨트롤을 원하지 않는다는 것을 의미합니다. Delphi의 차기 버전에서 아마도 유사한 마커를 사용하여 양식을 "VCL 또는 Windows에 대한 의존성 제거"로 표시 할 수 있습니다.

업데이트 1 : 데이터 모듈 저장의 .PAS 소스 코드를 다음과 같이 컴파일러 지시어처럼 조금 보이는 방법이 의사 특성 :

implementation 

{%CLASSGROUP 'Vcl.Controls.TControl'} 
+0

워렌, 어떻게 대답 할 수 있겠습니까? EMBT에 제출해야하며이를 수행 할 수있는 유일한 방법은 QC를 통해 또는 델파이 토론 그룹의 문서 포럼을 통해 이루어지는 것 같습니다.답할 수없는 질문이지만 토론 요청이므로 "비 건설적"으로 마감합니다. –

+0

@KenWhite, 레미 르 보우가 방금했습니다. :) –

+0

글쎄 그것은 답할 수 없다 (당신의 의견) 또는 명백한 (레미)이거나 우리가 델파이 (질문하는 이유)의 사용으로 파악할 수있는 곳이 더있을 수 있습니다. 가능한 경우 투표를 종료하거나 답변하십시오. –

답변

8

나는 꽤 분명히 생각 그것의 의도 된 사용을위한 것이며, 당신이 링크하는 문서는 그 목적에 대해 꽤 유혹적이다. 이는 VCL 전용 구성 요소가 FireMonkey 액세스 가능 데이터 모듈에 배치되지 않도록하기위한 것이며 그 반대의 경우도 마찬가지입니다. TDataModule은 처음에는 프레임 워크 중립적이기 때문에 프레임 워크 중립적 인 구성 요소 만 프레임 워크 중립에 배치 할 수 있습니다. 그래서 분명히 원본 DataModule은 새 DataModule과 다른 선호도를 가지므로 원본 DataModule의 선호도와 일치하도록 새 DataModule의 선호도를 변경할 때까지 복사/붙여 넣기가 작동하지 않습니다.

관련 문제