2013-10-17 2 views
2

내 Delphi 7 코드에서 다음 절차가 선언되었습니다. 델파이 XE4로 마이그레이션 할 때W1000 Symbol Delphi XE4에서 'THintInfo'는 권장되지 않는 컴파일러 경고입니다.

procedure MyProcedure(var HintInfo: THintInfo); 

, 컴파일러는 다음과 같은 던졌습니다 경고 :

W1000 Symbol 'THintInfo' is deprecated: 'Use Vcl.Controls.THintInfo' 

내가 봤 발견 http://www.alphaskins.com/forum/index.php?showtopic=5005

{$IFDEF UNICODE} 
THintInfo = Controls.THintInfo; 
{$ENDIF} 

에서 솔루션 다음, 오른쪽인가 또는 효율적인 방법이있다 이것을하기 위해.

에 이미 Controls 단위가 추가되었습니다.

+2

'controls, Forms'에서'Forms, Controls'로'uses' 부분을 변경하면 더러운 workaroud가됩니다. Controls.THintInfo를 사용하는 것이 좋습니다. – bummi

답변

3

형식의 정의가 양식에서 컨트롤로 옮겨졌습니다. 엠바 카데로 (Embarcadero)는 컨트롤의 실제 단위를 참조하는 폼 단위에 정의를 남겨 두었고, 폼의 해당 정의를 더 이상 사용되지 않는 것으로 표시했습니다.

컴파일러 경고가 당신이 말하는 무엇을 알려줍니다 당신이 Vcl.Controls보다는 컨트롤을 가져올 사용자가 정의한 단위 범위 이름을 활용하고 있기 때문에,

Use Vcl.Controls.THintInfo 

을 지금, 당신은 필요

Controls.THintInfo 
개인적으로

가 컨트롤로 이동하는 경우 엠바 카데로 그냥 폼에서 정의를 제거했다면 내가 많이 선호 등이 기호 이름을 지정합니다. 업그레이드 할 때 컴파일을 중단하고 싶지 않지만 Forms를 가져오고 컨트롤을 가져 오지 않는 사람은 누구입니까? 대신 모든 사람들이 비추 경고에 직면해야하며이를 처리해야합니다. Embarcadero가 선택한 경로는 단순히 선언문을 옮기는 것보다 사용자에게 더 큰 영향을 미친다 고 생각합니다.

+0

David와 bummi가 내 의심을 해결해 주셔서 감사합니다. –