Autor Beitrag
welu
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 24.02.08 00:22 
Ich bin neu hier, viele Grüße an alle!

Wie kann man unter XP von Delphi aus ermitteln, ob für die Oberfläche der XP-Stil oder Windows classic eingestellt ist? Wenn man den Rechner aus- und dann wieder einschaltet, bleibt die Einstellung ja erhalten, d. h. sie muss irgendwo auf der HD gespeichert sein. Ich vermute, in der Registry. Hat jemand eine Idee?
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: So 24.02.08 00:38 
Hi,

das hab' ich auch erst benötigt, um die AlphaSkins (Lite) zu aktivieren oder - wenn XP-Theme nicht verfügbar - nicht zu aktivieren.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
uses ..., Themes;  // ab Delphi 7

[..]

  if ThemeServices.ThemesEnabled then ... // (Themes aktiviert?) das suchst du, glaub' ich
  if ThemeServices.ThemesAvailable then ... // (Themes verfügbar?)


Gruß

Calculon
--

_________________
Hallo Mutti
welu Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 24.02.08 06:42 
Titel: Und unter Delphi5?
Das ist sicher eine gute Idee, aber ich habe nur D5 pro. Kann man die Unit Themes auch für für D5 einsetzen? Wenn ja, wo gibt's den Download?
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: So 24.02.08 10:07 
Titel: Re: Und unter Delphi5?
user profile iconwelu hat folgendes geschrieben:
Das ist sicher eine gute Idee, aber ich habe nur D5 pro. Kann man die Unit Themes auch für für D5 einsetzen? Wenn ja, wo gibt's den Download?

Die von neueren Delphi-Versionen mit sicherheit aufgrund von Lizenzrechtlichen Gründen nicht. Aber evtl. ist ja in der Jedi (Win32-API-Translation) ebenfalls ein Import dabei ...
welu Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 24.02.08 20:03 
Titel: Registry-Eintrag?
Die Art der Desktopdarstellung muss ja aber irgendwo gespeichert sein. Ich denke mal in der der Registry. Weiß vielleicht jemand den Registry-Eintrag? Den könnte ich direkt lesen, ohne andere Units, die evtl. Lizenzen benötigen würden, zu brauchen.
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: So 24.02.08 20:55 
Mitgelieferte VCL-Quellen sind was tolles... :wink:

ThemeAvailable prüft, ob sich die uxtheme.dll per loadlibrary laden lässt.
ThemeEnabled ist dann true, wenn ThemeAvailable true ist, die Funktionen 'IsAppThemed' und 'IsThemeActive' der uxtheme.dll true liefern, und wenn die per GetVersion ermittelte Version der comctl32.dll (Konstante comctl32 in Unit Windows) größer/gleich $00060000 ist.

Definition der beiden Funktionen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  IsThemeActive: function: BOOL; stdcall;
  {$EXTERNALSYM IsThemeActive}
  IsAppThemed: function: BOOL; stdcall;
  {$EXTERNALSYM IsAppThemed}

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
luwe
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 25.02.08 09:17 
Titel: Problem gelöst
Danke, das war die Lösung.