⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxuxtheme.pas

📁 胜天进销存源码,国产优秀的进销存
💻 PAS
📖 第 1 页 / 共 3 页
字号:
function GetThemeBool(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  out fVal: BOOL): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeBool(hTheme, iPartId, iStateId,
    iPropId, fVal);
end;

function GetThemeInt(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  out iVal: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeInt(hTheme, iPartId, iStateId,
    iPropId, iVal);
end;

function GetThemeEnumValue(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  out iVal: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeEnumValue(hTheme, iPartId,
    iStateId, iPropId, iVal);
end;

function GetThemePosition(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  out Point: TPoint): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemePosition(hTheme, iPartId, iStateId,
    iPropId, Point);
end;

function GetThemeFont(hTheme: TdxTheme; DC: HDC; iPartId, iStateId, iPropId: Integer;
  out Font: LOGFONTW): HRESULT;
var
  S: array [0 .. 1000] of Char;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeFont(hTheme, DC, iPartId, iStateId,
    iPropId, Font);
  FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, Result, LOCALE_USER_DEFAULT, S, 1001, nil);
end;

function GetThemeRect(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  out Rect: TRect): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeRect(hTheme, iPartId, iStateId,
    iPropId, Rect);
end;

function GetThemeMargins(hTheme: TdxTheme; DC: HDC; iPartId, iStateId, iPropId: Integer;
  prc: PRect; out Margins: TdxMargins): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeMargins(hTheme, DC, iPartId,
    iStateId, iPropId, prc, Margins);
end;

function GetThemeIntList(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  out IntList: TdxIntList): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeIntList(hTheme, iPartId, iStateId,
    iPropId, IntList);
end;

function GetThemePropertyOrigin(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  out Origin: TdxPropertyOrigin): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemePropertyOrigin(hTheme, iPartId,
    iStateId, iPropId, Origin);
end;

function SetWindowTheme(hWnd: HWND; pszSubAppName, pszSubIdList:
  PWideChar): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FSetWindowTheme(hWnd, pszSubAppName, pszSubIdList);
end;

function GetThemeFilename(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  pszThemeFileName: PWideChar; cchMaxBuffChars: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeFilename(hTheme, iPartId,
    iStateId, iPropId, pszThemeFileName, cchMaxBuffChars);
end;

function GetThemeSysColor(hTheme: TdxTheme; iColorId: Integer): COLORREF;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeSysColor(hTheme, iColorId);
end;

function GetThemeSysColorBrush(hTheme: TdxTheme; iColorId: Integer): HBRUSH;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeSysColorBrush(hTheme, iColorId);
end;

function GetThemeSysBool(hTheme: TdxTheme; iBoolId: Integer): BOOL;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeSysBool(hTheme, iBoolId);
end;

function GetThemeSysSize(hTheme: TdxTheme; iSizeId: Integer): Integer;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeSysSize(hTheme, iSizeId);
end;

function GetThemeSysFont(hTheme: TdxTheme; iFontId: Integer;
  out lf: LOGFONTW): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeSysFont(hTheme, iFontId, lf);
end;

function GetThemeSysString(hTheme: TdxTheme; iStringId: Integer; pszStringBuff:
  PWideChar; cchMaxStringChars: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeSysString(hTheme, iStringId,
    pszStringBuff, cchMaxStringChars);
end;

function GetThemeSysInt(hTheme: TdxTheme; iIntId: Integer; var iValue: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeSysInt(hTheme, iIntId, iValue);
end;

function IsThemeActive: BOOL;
begin
  if @FThemeLibraryMethodPointersKeeper.FIsThemeActive = nil then
    Result := False
  else
    Result := FThemeLibraryMethodPointersKeeper.FIsThemeActive;
end;

function IsAppThemed: BOOL;
begin
  Result := FThemeLibraryMethodPointersKeeper.FIsAppThemed;
end;

function GetWindowTheme(hWnd: HWND): TdxTheme;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetWindowTheme(hWnd);
end;

function EnableThemeDialogTexture(hWnd: HWND; dwFlags: DWORD): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FEnableThemeDialogTexture(hWnd, dwFlags);
end;

function IsThemeDialogTextureEnabled(hWnd: HWND): BOOL;
begin
  Result := FThemeLibraryMethodPointersKeeper.FIsThemeDialogTextureEnabled(hWnd);
end;

function GetThemeAppProperties: DWORD;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeAppProperties;
end;

procedure SetThemeAppProperties(dwFlags: DWORD);
begin
  FThemeLibraryMethodPointersKeeper.FSetThemeAppProperties(dwFlags);
end;

function GetCurrentThemeName(pszThemeFileName: PWideChar;
  cchMaxNameChars: Integer; pszColorBuff: PWideChar;
  cchMaxColorChars: Integer; pszSizeBuff: PWideChar;
  cchMaxSizeChars: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetCurrentThemeName(pszThemeFileName,
    cchMaxNameChars, pszColorBuff, cchMaxColorChars, pszSizeBuff, cchMaxSizeChars);
end;

function GetThemeDocumentationProperty(
  pszThemeName, pszPropertyName, pszValueBuff: PWideChar;
  cchMaxValChars: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeDocumentationProperty(pszThemeName,
    pszPropertyName, pszValueBuff, cchMaxValChars);
end;

//vista extention

function BufferedPaintInit: HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FBufferedPaintInit;
end;

function BufferedPaintUnInit: HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FBufferedPaintUnInit;
end;

function BeginBufferedPaint(hdcTarget: HDC; prcTarget: PRect;
  dwFormat: DWORD; pPaintParams: PdxBPPaintParams; out dc: HDC): TdxPaintBuffer;
begin
  Result := FThemeLibraryMethodPointersKeeper.FBeginBufferedPaint(hdcTarget,
  prcTarget, dwFormat, pPaintParams, dc);
end;

function EndBufferedPaint(hBufferedPaint: TdxPaintBuffer; fUpdateTarget: BOOL): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FEndBufferedPaint(hBufferedPaint, fUpdateTarget);
end;

function BufferedPaintSetAlpha(hBufferedPaint: TdxPaintBuffer; prc: PRect; alpha: Byte): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FBufferedPaintSetAlpha(hBufferedPaint, prc, alpha);
end;

function IsThemeLibraryLoaded: Boolean;
begin
  Result := FThemeLibrary <> 0;
end;

function IsWindowsXPOrLater: Boolean;
begin
  Result := FIsWindowsXPOrLater;
end;

procedure CheckOSVersion;
var
  Info: TOSVersionInfo;
begin
  Info.dwOSVersionInfoSize := SizeOf(Info);
  GetVersionEx(Info);
  FIsWindowsXPOrLater := (Info.dwMajorVersion > 5) or
    ((Info.dwMajorVersion = 5) and (Info.dwMinorVersion >= 1));
end;

procedure SetMethodPointers;
begin
  with FThemeLibraryMethodPointersKeeper do
  begin
    @FCloseThemeData := GetProcAddress(FThemeLibrary, 'CloseThemeData');
    @FDrawThemeBackground := GetProcAddress(FThemeLibrary, 'DrawThemeBackground');
    @FDrawThemeEdge := GetProcAddress(FThemeLibrary, 'DrawThemeEdge');
    @FDrawThemeIcon := GetProcAddress(FThemeLibrary, 'DrawThemeIcon');
    @FDrawThemeParentBackground := GetProcAddress(FThemeLibrary, 'DrawThemeParentBackground');
    @FDrawThemeText := GetProcAddress(FThemeLibrary, 'DrawThemeText');
    @FDrawThemeTextEx := GetProcAddress(FThemeLibrary, 'DrawThemeTextEx');
    @FEnableThemeDialogTexture := GetProcAddress(FThemeLibrary, 'EnableThemeDialogTexture');
    @FGetCurrentThemeName := GetProcAddress(FThemeLibrary, 'GetCurrentThemeName');
    @FGetThemeAppProperties := GetProcAddress(FThemeLibrary, 'GetThemeAppProperties');
    @FGetThemeBackgroundContentRect := GetProcAddress(FThemeLibrary, 'GetThemeBackgroundContentRect');
    @FGetThemeBackgroundRegion := GetProcAddress(FThemeLibrary, 'GetThemeBackgroundRegion');
    @FGetThemeBackgroundExtent := GetProcAddress(FThemeLibrary, 'GetThemeBackgroundExtent');
    @FGetThemeBool := GetProcAddress(FThemeLibrary, 'GetThemeBool');
    @FGetThemeColor := GetProcAddress(FThemeLibrary, 'GetThemeColor');
    @FGetThemeDocumentationProperty := GetProcAddress(FThemeLibrary, 'GetThemeDocumentationProperty');
    @FGetThemeEnumValue := GetProcAddress(FThemeLibrary, 'GetThemeEnumValue');
    @FGetThemeFilename := GetProcAddress(FThemeLibrary, 'GetThemeFilename');
    @FGetThemeFont := GetProcAddress(FThemeLibrary, 'GetThemeFont');
    @FGetThemeInt := GetProcAddress(FThemeLibrary, 'GetThemeInt');
    @FGetThemeIntList := GetProcAddress(FThemeLibrary, 'GetThemeIntList');
    @FGetThemeMargins := GetProcAddress(FThemeLibrary, 'GetThemeMargins');
    @FGetThemeMetric := GetProcAddress(FThemeLibrary, 'GetThemeMetric');
    @FGetThemePartSize := GetProcAddress(FThemeLibrary, 'GetThemePartSize');
    @FGetThemePosition := GetProcAddress(FThemeLibrary, 'GetThemePosition');
    @FGetThemePropertyOrigin := GetProcAddress(FThemeLibrary, 'GetThemePropertyOrigin');
    @FGetThemeRect := GetProcAddress(FThemeLibrary, 'GetThemeRect');
    @FGetThemeString := GetProcAddress(FThemeLibrary, 'GetThemeString');
    @FGetThemeSysBool := GetProcAddress(FThemeLibrary, 'GetThemeSysBool');
    @FGetThemeSysColor := GetProcAddress(FThemeLibrary, 'GetThemeSysColor');
    @FGetThemeSysColorBrush := GetProcAddress(FThemeLibrary, 'GetThemeSysColorBrush');
    @FGetThemeSysFont := GetProcAddress(FThemeLibrary, 'GetThemeSysFont');
    @FGetThemeSysInt := GetProcAddress(FThemeLibrary, 'GetThemeSysInt');
    @FGetThemeSysSize := GetProcAddress(FThemeLibrary, 'GetThemeSysSize');
    @FGetThemeSysString := GetProcAddress(FThemeLibrary, 'GetThemeSysString');
    @FGetThemeTextExtent := GetProcAddress(FThemeLibrary, 'GetThemeTextExtent');
    @FGetThemeTextMetrics := GetProcAddress(FThemeLibrary, 'GetThemeTextMetrics');
    @FGetWindowTheme := GetProcAddress(FThemeLibrary, 'GetWindowTheme');
    @FHitTestThemeBackground := GetProcAddress(FThemeLibrary, 'HitTestThemeBackground');
    @FIsAppThemed := GetProcAddress(FThemeLibrary, 'IsAppThemed');
    @FIsThemeActive := GetProcAddress(FThemeLibrary, 'IsThemeActive');
    @FIsThemePartDefined := GetProcAddress(FThemeLibrary, 'IsThemePartDefined');
    @FIsThemeBackgroundPartiallyTransparent := GetProcAddress(FThemeLibrary, 'IsThemeBackgroundPartiallyTransparent');
    @FIsThemeDialogTextureEnabled := GetProcAddress(FThemeLibrary, 'IsThemeDialogTextureEnabled');
    @FOpenThemeData := GetProcAddress(FThemeLibrary, 'OpenThemeData');
    @FSetThemeAppProperties := GetProcAddress(FThemeLibrary, 'SetThemeAppProperties');
    @FSetWindowTheme := GetProcAddress(FThemeLibrary, 'SetWindowTheme');
    //vista extention
    @FBufferedPaintInit := GetProcAddress(FThemeLibrary, 'BufferedPaintInit');
    @FBufferedPaintUnInit := GetProcAddress(FThemeLibrary, 'BufferedPaintUnInit');
    @FBeginBufferedPaint := GetProcAddress(FThemeLibrary, 'BeginBufferedPaint');
    @FEndBufferedPaint := GetProcAddress(FThemeLibrary, 'EndBufferedPaint');
    @FBufferedPaintSetAlpha := GetProcAddress(FThemeLibrary, 'BufferedPaintSetAlpha');
  end;
end;

initialization
  CheckOSVersion;
  InitCommonControls;
  if FIsWindowsXPOrLater (*and (GetComCtlVersion >= $60000) *)then
  begin
    FThemeLibrary := LoadLibrary(ThemeLibraryName);
    if FThemeLibrary <> 0 then
      SetMethodPointers;
  end;

finalization
  if FThemeLibrary <> 0 then
    FreeLibrary(FThemeLibrary);
    
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -