Einzelnen Beitrag anzeigen

Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: [NonVCL] Hintergundfarbe des TabSheets mit XP-Styles

  Alt 20. Sep 2006, 20:25
So, ich hab es dann mal "komplett" in mein Programm eingebaut. Als Referenz noch die Funktion zum dynamischen reinverbasteln, damits unter Windows NT/2000 auch funktionudelt.

Delphi-Quellcode:
unit Utilities;

interface

uses
  Windows;

type
  TEnableThemeDialogTexture = function(wnd: HWND; dwFlags: dword):
    HRESULT; stdcall;
  function LoadThemeDLL(wnd: hWnd; dwFlags: DWord): Boolean;

implementation

function LoadThemeDLL(wnd: hWnd; dwFlags: DWord): Boolean;
var
  EnableThemeDlgText: TEnableThemeDialogTexture;
  hThemeDll: THandle;
  DllResult: HRESULT;
begin
  Result := False;
  hThemeDll := LoadLibrary('uxtheme.dll');
  If hThemeDll <> 0 then
  begin
    @EnableThemeDlgText := GetProcAddress(hThemeDll, 'EnableThemeDialogTexture');
    if @EnableThemeDlgText <> nil then
    begin
      DllResult := EnableThemeDlgText(wnd, dwFlags);
      Result := DllResult = S_OK;
    end;
    FreeLibrary(hThemeDll);
  end;
end;

end.
Der Aufruf kann dann im Code (siehe Beitrag von MathiasSimmack) folgendermaßen erfolgen:
Delphi-Quellcode:
  For I := 0 to Length(hTabDlgs) -1 do
  begin
    hTabDlgs[I] := CreateDialog(hInstance,
      MAKEINTRESOURCE(200 + I), hDlg, @tabDlgFunc);
    LoadThemeDLL(hTabDlgs[i], 6);
  end;
Ja und dann natürlich noch das allerallerwichtigste.

Vielen herzlichen Dank!!!
Daniel Schuhmann
  Mit Zitat antworten Zitat