Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi XP: Klassisches Design (https://www.delphipraxis.net/5281-xp-klassisches-design.html)

Mat 30. Mai 2003 22:02


XP: Klassisches Design
 
Hi,


unter XP kann man ja einstellen, dass man das Aussehen so haben will, wie bei allen Vorgaenger-Versionen.

(Systemsteuerung->Anzeige->Designs->Windows -klassisch)

Kann ich in Delphi rauskriegen, ob diese Anzeige auf dem Rechner gerade aktiviert ist?



Danke

Mat

MathiasSimmack 31. Mai 2003 07:09

In der "uxtheme.dll" gibt es eine Funktion:
Delphi-Quellcode:
type
  TIsThemeActive = function: bool; stdcall;
var
  IsThemeActive : TIsThemeActive;
die man importieren kann. Ich empfehle dabei den dynamischen Weg, damit das Programm unter 9x/ME/NT/2000 nicht mit einer Fehlermeldung beendet wird. Es sei denn natürlich, das Programm soll nur unter XP laufen.

Da die Funktion true bzw. false zurückliefert, sollte es keine Fragen mehr geben. :)

Stanlay Hanks 31. Mai 2003 11:22

Is ja irgendwo logisch, dass es nur unter XP laufen soll. Für was soll er denn sonst wissen wollen, welches Design aktiviert is? :wink:
Aber mit dem Dynamischen Laden stimme ich dir zu. wer weiß, was passiert...

Mat 31. Mai 2003 14:33

danke, das probier ich mal aus..


uebrigens, das programm soll nicht nur unter XP laufen.. :)




Mat

Mat 1. Jun 2003 16:40

supi, hat funktioniert.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
type
  TIsThemeActive = function: bool; stdcall;
var
  Handle :THandle;
  IsThemeActive : TIsThemeActive;
  result :string;

begin

  result := 'kein XP';

  Handle := LoadLibrary('uxtheme.dll');
  if Handle <> 0 then
    begin
      IsThemeActive := GetProcAddress(Handle, 'IsThemeActive');

      if IsThemeActive then
        result := 'neuer Stil'
      else
        result := 'alter Stil';

      FreeLibrary(Handle);
    end;



  ShowMessage(result);

end;
fuehrt auch auf allen anderen Systemen nicht zu nem Fehler

danke
Mat


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz