2012-02-13 6 views
4

나는 제 3 자 패키지를 설치하려고 내가 컴파일 오류가 발생합니다 :어떤 단위 범위가 필요합니까?

이 줄을 의미
[DCC Error] fiile/line : E2003 Undeclared identifier: 'Windows' 

:

wnd := Windows.GetFocus; 

그것은 내 장치가없는 것을 매우 분명 보인다 범위가 올바르지 만 필요한 것은 무엇입니까? (그리고 내가 사용하는 절을 찾는 일반적인 방법이 있습니까?)

나는 현재

Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;Xml;Data;Datasnap;Web; 
Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;Winapi;System.Win 

[업데이트]

interface 
uses 
SysUtils, winapi.windows, Classes, Controls, ExtCtrls, Graphics, StdCtrls, 
Dialogs, IniFiles, winapi.messages, Forms, Math 
{$IFDEF DELPHI6_LVL} 
, Variants 
{$ENDIF} 
; 

없음이 impementation 섹션에 사용합니다.

[Upate] 나는 언급하는 것을 잊었다. 하나의 노트북에 설치하는 데 실패했습니다 (같은 방식으로). 그럼 나는 1 초를 성공했다. 문제는 필자가 데스크탑에 설치하고 XE2 스타터를 새로 설치 한 후에 이러한 문제가 발생한다는 것입니다.

+1

아마도 누락되었지만 이전 버전의 Delphi에서 테스트 된 타사 패키지에서 일반적으로 발생하는 오류는 아닙니다. 그러나 사용자가 복사하여 Delphi XE2에서 새 양식의 이벤트 핸들러에 붙여 넣으면 사용자 코드에서 볼 수 있습니다. –

+0

+1 고마워요, 아아아 : XE2 시동기를 새로 설치하고 매우 광범위하게 설치된 패키지를 수동으로 설치할 수 없습니다 (soem PC에는 좋지 않습니다.) – Mawg

답변

2

귀하의 용도가 Windows 단위의 이름을 전혀 사용하지 않는다고 가정하면 장치의 이름을 다음과 같이 Winapi.Windows. 그래서 코드도 그렇게해야 당신이 완전히 범위 단위 이름을 명명하여 장치를 사용하는 경우

wnd := Winapi.Windows.GetFocus; 

과 같이 쓸 수, 당신은 또한 단위로 다음 코드에서 완전히 범위 이름을 사용해야합니다.

이제 Windows라는 이름을 사용하려면 uses 절에서 Windows로 이름을 지정하고 단위 별칭 설정을 수행해야합니다. Windows에 이름을 지정하여 장치를 가져온 경우 원래 코드가 작동합니다.

은 매우 명확합니다 :

uses 
    Windows; 

를 컴파일하여 코드 :

uses 
    Winapi.Windows; 

당신이 지금 가지고 있지만 당신이 필요로 할 것입니다.

+0

+1하지만 내 의견을 Rudy에게 보냅니다. 그것은 하나의 PC 없이도 작동했으며 작성자는 모두없이 작동해야한다고 말합니다. 바탕 화면에 어떤 문제가 있습니까? – Mawg

+1

오류에 대한 설명은 RRUZ, Henrick과 내가 말하는 것입니다. 더 많은 도움이 필요하면 컴파일 오류가 발생하는 유닛의 uses 절을 표시하는 것이 좋습니다. –

+0

+1 감사합니다. qeustion에 uses 절을 추가합니다. – Mawg

3

당신의 단위 범위는 괜찮 은데, 그래서 섹션을 윈도우 대신 Winapi.Windows

정도

wnd := Winapi.Windows.GetFocus; 
같은 코드를 수정을 사용하여에

선언이 두 옵션을 시도
+2

다른 방법이 있습니다. 항목이 Winapi.Windows이면 정규 식별자는 Winapi.Windows.GetFocus 여야합니다. 섹션 항목이 Windows 인 경우 기존 코드는 정상입니다. –

+1

@DavidHeffernan 원래 Windows 대신 'Winapi.Windows'를 작성했지만 Windows.WinApi 대신 Windows를 의미하는 첫 번째 해결 방법을 수정했습니다. – RRUZ

+1

@DavidHeffernan, 영어 실력에 대한 지식이 부족할 때가 있습니다. – RRUZ

관련 문제