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.
Tipy a triky v Delphi, díl 96.
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.

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

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

USB zařízení je možné odposlouchávat ze sousedního portu

USB zařízení je možné odposlouchávat ze sousedního portu

** Crosstalk byl dřív problém paralelních portů, dnes se ho pokusili prověřit na USB ** Zařízení ze sousedního USB portu může odposlouchávat to vedlejší ** Mohou vznikat záškodnické flašky nebo třeba USB lampičky

14.  8.  2017 | Adam Harmada | 19

Jak převést PDF do Wordu: 3 způsoby, které můžete použít

Jak převést PDF do Wordu: 3 způsoby, které můžete použít

** Využít můžete přímo Word v rámci balíčku Office ** Zdarma lze využít Google Dokumenty, neporadí si ale s formátováním ** Obrátit se také můžete na specializované stránky

11.  8.  2017 | Vladislav Kluska | 9

Co je realita a fikce? Brzy to nepoznáme. A.I. ze Stanfordu tvoří fotky z neexistujících měst

Co je realita a fikce? Brzy to nepoznáme. A.I. ze Stanfordu tvoří fotky z neexistujících měst

** Fotografii každý vnímá jako jednoznačný důkaz ** časem to ale přestane platit ** Strojové učení se totiž neustále zdokonaluje

16.  8.  2017 | Jakub Čížek | 12

Zrušený evropský roaming je brutální vražda virtuálních operátorů

Zrušený evropský roaming je brutální vražda virtuálních operátorů

** Když EU rušila roaming, šla přes mrtvoly ** Tou největší jsou virtuální operátoři ** Vlastně je překvapivé, že už nepadají jeden po druhém

12.  8.  2017 | Filip Kůžel | 89


Aktuální číslo časopisu Computer

Velký test NVMe a SATA SSD

Máte slabý signál
Wi-Fi? Poradíme!

Jak umělá inteligence opravuje fotky

Kupujete dron? Ty levné se nevyplatí