2010-05-21 11 views
0

내가 주체가 모든 것을 알려줍니다 생각에 runetime에서 함수/프로 시저 ...가져 오기 특정 델파이

나는 단지이 방법이 필요합니다. 내가 필요로하는 것만 있다면 6Mb 정도의 유닛을 낭비 할 필요가 없다. (테마) ...

나는 UxTheme 유닛을 생각하고 있었지만 적절한 기능을 가지고 있지 않았다. 어떤 Windows DLL을 가져와야하고이 API 함수의 약자는 무엇입니까?

감사합니다.

P. 질문은이 특정 방법뿐만 아니라 MSXML 및 MM 단위로 동일한 작업을 수행해야하므로 나머지도 다루겠습니다. ...

답변

1

@HX_unbanned, 분명히 당신은 조금 혼란스러워합니다. 프로젝트에 테마 단위를 추가하면 321KB aprox의 exe 크기가 증가하기 때문입니다. 어쨌든 응용 프로그램이 themed (themesEnabled)인지 확인하려면 수동으로 다음 단계를 따라야합니다.

1) comctl32.dll 라이브러리의 버전을 확인 (

2)가 uxtheme.dll이라는 라이브러리

3) IsAppThemedIsThemeActive 및 기능을 가져로드) 주요 6 같아야한다.

4) (모두이 샘플

function ThemesEnabled :Boolean; 
const 
    ComCtlVersionIE6 = $00060000; 
var 
    ThemeLib  : THandle; 
    IsThemeActive : function: Boolean; stdcall; 
    IsAppThemed  : function: Boolean; stdcall; 
begin 
    Result:=GetFileVersion('comctl32.dll')>=ComCtlVersionIE6; 
    if not Result then exit; 
    ThemeLib := LoadLibrary('uxtheme.dll'); 
    try 
    if ThemeLib > 0 then 
    begin 
     IsAppThemed := GetProcAddress(ThemeLib, 'IsAppThemed'); 
     IsThemeActive := GetProcAddress(ThemeLib, 'IsThemeActive'); 
     Result:=IsAppThemed and IsThemeActive; 
    end 
    else 
    Result:=False; 
    finally 
    FreeLibrary(ThemeLib); 
    end; 
end; 
+0

확인) 참이어야 논문 함수의 값을 확인한다. 좋아요, 그게 옳은 해결책이 될거에요 - 프로젝트에 UxThemes 유닛을 추가하면 ~ 321kb 크기가됩니다. 테마 유닛을 추가하면 컴파일 된 exe에 6,5 MB가 추가됩니다. Btw - 해당 Windows DLL (API 호출)에서 델파이 기능을 찾을 수있는 방법이 있습니까? –

+0

감사합니다. 나는 그것을 빨리 시험 할 것이다;) –

+0

예, HX. 소스 코드를 검색하기 만하면됩니다. 델파이 함수는 API 함수를 호출 할 것이므로 두 함수 중 하나를 찾으면 다른 함수를 찾을 수 있습니다. –

관련 문제