Tipy a triky v Delphi, díl 96.

Další drobnost, která nás dnes čeká, se opět týká Windows XP a opět vizuálních témat. Nechte se překvapit.
Už jsme si ukazovali testování, zda jsou styly zapnuté či dokonce jak odchytit přímo změnu stylu "za běhu". Teď je na řadě drobnost, která sice nemá přímo nějaký viditelný efekt či použití pro uživatele, ale přesto se nám někdy může hodit. Ukážeme si, jak zjistit jméno aktuálního stylu (tj. jméno souboru včetně cesty, kde je uložen), dále barevné schéma, které styl používá, a konečně velikost písma (např. normal, extralarge atd..).

Opět budeme využívat externí systémovou dll knihovnu a celý zdrojový kód bude vypadat následovně:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  GetCurrentThemeName: function (pszThemeFileName: LPWSTR; cchMaxNameChars: Integer; pszColorBuff: LPWSTR; cchMaxColorChars: Integer; pszSizeBuff: LPWSTR; cchMaxSizeChars: Integer): HRESULT; stdcall;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  FileName, ColorScheme, SizeName: WideString;
  hThemeLib: THandle;
begin
  try
    hThemeLib := LoadLibrary(`uxtheme.dll`);
    if hThemeLib > 0 then GetCurrentThemeName := GetProcAddress(hThemeLib, `GetCurrentThemeName`);
    if Assigned(GetCurrentThemeName) then
    begin
      SetLength(FileName, 255);
      SetLength(ColorScheme, 255);
      SetLength(SizeName, 255);
      OleCheck(GetCurrentThemeName(PWideChar(FileName), 255, PWideChar(ColorScheme), 255, PWideChar(SizeName), 255));
      ShowMessage(PWideChar(FileName) + `  ` + PWideChar(ColorScheme) + `  ` + PWideChar(SizeName));
    end;
  finally
    FreeLibrary(hThemeLib);
  end;
end;

end.

Po stisknutí tlačítka budou všechny hledané informace vypsány pomocí ShowMessage. Zřejmě je zbytečné připomínat, že tato funkce má samozřejmě smysl pouze pod Windows XP a v ostatních verzích Windows se nestane nic.

Váš názor Další článek: VIA končí se základními deskami pro Pentium 4

Témata článku: Software, Windows, Programování, Trik, Viditelný efekt, Filename, Díl


Určitě si přečtěte

Co je srdce nového iPhonu? Apple A12 Bionic, první 7nm čip nabitý výkonem

Co je srdce nového iPhonu? Apple A12 Bionic, první 7nm čip nabitý výkonem

** Apple v nových iPhonech používá nový vlastní čip A12 Bionic ** Jde o první 7nm čip na světě ** Kromě vyššího klasického výkonu dostala neuronová část masivní navýšení rychlosti zpracování umělé inteligence

Karel Javůrek | 38

Lenovo přivezlo na IFA 2018 skutečné inovace. Tyto tři notebooky stojí za to

Lenovo přivezlo na IFA 2018 skutečné inovace. Tyto tři notebooky stojí za to

** Yoga C930 nabídne revoluční reproduktor v kloubu displeje ** Yoga Book C930 představuje zdařilý reparát podivného Yoga Booku ** ThinkPad X1 Extreme se může pochlubit extrémní výbavou v tenkém těle

Tomáš Holčík | 16

Přichází revoluce v oblasti deodorantů!

Přichází revoluce v oblasti deodorantů!

** Britští vědci odhalili uzlový bod procesů, kterými vzniká nejpronikavější složka lidského tělesného pachu ** Nové generaci deodorantů by mohl dodat na síle cílený zásah do života malé skupinky kožních bakterií ** Podle některých vědců by to ale znamenalo zpřetrhat pouta mezi člověkem a mikrobem

Jaroslav Petr | 33

eObčanka: Jak a proč si zřídit elektronický občanský průkaz s čipem

eObčanka: Jak a proč si zřídit elektronický občanský průkaz s čipem

** Občanka s čipem už je standardně vydávaným osobním dokladem v Česku ** Umožní využívat Portál občana a funkce elektronické státní správy ** Pokud ji chcete naplno využívat, musíte si čip aktivovat

David Polesný | 94

Pojďme programovat elektroniku: Jak vlastně funguje akcelerometr a gyroskop nejen ve vašem telefonu

Pojďme programovat elektroniku: Jak vlastně funguje akcelerometr a gyroskop nejen ve vašem telefonu

** Každý současný vybavený mobil má akcelerometr a gyroskop ** Jenže co každé z těchto čidel vlastně dělá a jak vypadá? ** Dnes si to vysvětlíme a do hry zapojíme i Airbus A380 a Arduino

Jakub Čížek | 11


Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání