Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Klicki-Bunti Programmierung bei altem Windows Style (https://www.delphipraxis.net/135532-klicki-bunti-programmierung-bei-altem-windows-style.html)

seim 12. Jun 2009 15:31


Klicki-Bunti Programmierung bei altem Windows Style
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

hab' grad ein kleines Problem..

Schaut euch mal bitte die beiden Dateien an (wenn ihr einen neuen Windows Style != alter Grauer Style an habt). Genau wenn man den alten Style an hat sind Sachen wie TPanels nämlich nicht mehr so cool Transparent und es sieht einfach sch.. aus.
Also ich bräuchte quasi eine Möglichkeit trotz altem Style gewährleisten zu können, dass es nicht so aussieht wie es aussieht..

Mir würde schon sowas reichen wie:

Delphi-Quellcode:
if AlterStyle = true then
 Hintergrundgrafik := false;
lg
Seim

Sherlock 12. Jun 2009 15:40

Re: Klicki-Bunti Programmierung bei altem Windows Style
 
http://lmgtfy.com/?q=delphi+xp+theme

Das zweite Ergebnis (das mit dem weiteren möglichen Stichwort "active" bietet dann die komplette Lösung.

Sherlock

Mikescher 12. Jun 2009 16:35

Re: Klicki-Bunti Programmierung bei altem Windows Style
 
Zitat:

Zitat von Sherlock
http://lmgtfy.com/?q=delphi+xp+theme

http://www.gindf.de/ :mrgreen:

seim 12. Jun 2009 17:04

Re: Klicki-Bunti Programmierung bei altem Windows Style
 
Delphi-Quellcode:
function _IsThemeActive: Boolean;
// Returns True if the user uses XP style
const
  themelib = 'uxtheme.dll';
type
  TIsThemeActive = function: BOOL; stdcall;
var
  IsThemeActive: TIsThemeActive;
  huxtheme: HINST;
begin
  Result := False;
  // Check if XP or later Version
  if (Win32Platform = VER_PLATFORM_WIN32_NT) and
     (((Win32MajorVersion = 5) and (Win32MinorVersion >= 1)) or
      (Win32MajorVersion > 5)) then
  begin
    huxtheme := LoadLibrary(themelib);
    if huxtheme <> 0 then
    begin
      try
        IsThemeActive := GetProcAddress(huxtheme, 'IsThemeActive');
        Result := IsThemeActive;
      finally
       if huxtheme > 0 then
          FreeLibrary(huxtheme);
      end;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if _IsThemeActive then
   ShowMessage('Windows XP Themes are activated.');
end;

Andreas L. 12. Jun 2009 20:24

Re: Klicki-Bunti Programmierung bei altem Windows Style
 
Für Delphi 7 und aufwärts:
Delphi-Quellcode:
uses ..., Themes;

...
...

procedure TForm1.Button1Click(Sender: TObject);
begin
  if ThemeServices.ThemesAvailable then
    ShowMessage('Themes verfügbar');

  if ThemeServices.ThemesEnabled then
    ShowMessage('Ein Theme ist derzeit aktiviert');
end;

seim 12. Jun 2009 20:30

Re: Klicki-Bunti Programmierung bei altem Windows Style
 
Danke!

Sag mal die Transparenz für so Dinge wie TLabel und TPanel gehen aber wirklich >gar< nicht wenn gerade keines der modernen Themes aktiviert ist? Oder gibt es noch irgendein Trick dagegen?

Andreas L. 12. Jun 2009 20:57

Re: Klicki-Bunti Programmierung bei altem Windows Style
 
Zitat:

Zitat von seim
Sag mal die Transparenz für so Dinge wie TLabel und TPanel gehen aber wirklich >gar< nicht wenn gerade keines der modernen Themes aktiviert ist? Oder gibt es noch irgendein Trick dagegen?

TLabel hat die Eigenschaft Transparent die unabhängig vom Windows-Theme funktioniert. Wie man ein TPanel transparent macht kannst du mit der Forensuche herausfinden, oder falls du die Jedi VCL installiert hast, das TJvPanel verwenden welches ebenfalls eine Transparent-Eigenschaft hat. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 Uhr.

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