Delphi VCL 단위 Grids.pas의 버그 (QC#25702)에 대한 해결 방법을 찾았습니다. 따라서이 파일을 프로젝트의 소스 폴더에 복사하고 프로젝트에 추가 한 다음 몇 줄의 코드를 변경했습니다. 그것은 Delphi 2007에서 였고 모든 것이 예상대로 작동했습니다.Delphi (XE2)에서 VCL 단위를 어떻게 변경합니까?
이제 Delphi XE2에서는 프로젝트가 더 이상 컴파일되지 않습니다. 호환되지 않는 유형 인 "TCustomGrid"및 "TdzVirtualStringGrid"(TCustomGrid의 자손)에 대해 불평합니다. 한 유닛은 Grids.pas 사본에 선언 된 TCustomGrid를 참조하고, 다른 하나는 Vcl.Grids.pas에 선언 된 TCustomGrid를 참조합니다. 이것은 두 유닛 모두 uses 절에 Vcl.Grids가 아닌 "Grids"가 있어도 발생합니다. 어떻게 내가이 문제를 해결할 수 있을지 생각해?
설명하는 프로세스가 작동하는 것으로 알려져 있습니다. 그래서 명확하게 어떤 구체적인 세부 사항은 잘못되었습니다. 일부는 정확하지 않습니다. 우리는 그것이 무엇인지 추측 할 수 있습니다. 아마도 구식 dcu 파일이 있습니까? 아니면 D2007'Grids' (mods 포함)를 XE2 프로젝트에 추가했을 것입니다. 특정 환경 문제를 찾기 위해 일부 디버깅을 시도하고 수행하십시오. –
XE2의 Vcl.Grids 유닛을 사용하여 프로세스를 반복하려했습니다 (프로젝트의 XE2 버전에만 포함되도록 다른 하위 디렉토리에 배치). 결과적으로 XE2에서는 버그가 수정되었으므로 프로젝트에서 Grids 유닛을 제거하고 Delphi 2007 파일을 하위 디렉토리로 이동 한 다음 프로젝트의 Delphi 2007 버전에만 포함 시켰습니다. – dummzeuch
불행히도 여전히 동일한 프로젝트 내에서 두 유닛이 모두 사용 된 이유는 여전히 설명하지 못합니다. 모든 dcu 파일을 삭제하는 것은 도움이되지 못했지만 이제 Delphi 2007에서만 수정 된 유닛을 사용하기 때문에 오류가 사라졌습니다. 그렇다면이 질문을 어떻게 닫을 수 있습니까? 그것은 정말로 대답이 아니지만 더 이상 적합하지 않습니다. – dummzeuch