Živě.cz o počítačích a internetu

Tipy a triky v Delphi, díl 51. - Ovládací panely Windows

Jan Šindelář - 31.7.2002

Ovládací panely Windows

Jak jistě dobře víte, Ovládací panely Windows obsahují řadu různých drobných aplikací, jejichž náplní práce je nastavení vlastností všech možných částí systému od myši až po sítě a databáze. Jistě jste si také všimli, že kromě těchto základních "aplikací" (ne vždy se jedná o samostatnou aplikaci v pravém slova smyslu), které jsou nainstalovány společně se systémem, se zde po nainstalování některých dalších aplikací objeví nové ikonky. Typickým zástupcem mohou být třeba přímo Delphi, které sem umístí odkaz na BDE Administrator, ale i řada dalších programů (namátkou třeba známá Sisoft Sandra, programy od Symantecu, Adobe a další). Cokoliv tedy nějakým způsobem souvisí s nastavením systému, má své sídlo zde a pokud vytváříme aplikaci tohoto typu, jistě by bylo vhodné umístit ji rovněž sem právě v podobě aplikace pro Ovládací panely.

Začněme tedy pěkně od začátku. Možná víte, že tyto speciální aplikace nejsou spustitelné exe soubory, mají koncovku cpl a jedná se v podstatě od knihovny podobě jako dll. Tyto aplety se vytvářejí v Delphi poměrně snadno, i když je postup mírně odlišný od tvorby běžné aplikace. Začneme tím, že založíme nový projekt. Z menu File vybereme klasicky položku New a v zobrazeném dialogu najdeme a vybereme typ Control Panel Application. Hned si můžete všimnout, že nově vytvořené soubory se drobně liší od těch klasických aplikačních. První rozdíl je v tom, že v projektovém souboru nenajdeme klasický termín Program, ale místo toho se zde nalézá označení library. Vytvořená jednotka a její hlavní objekt pak není třídy TForm, ale TAppletModule. Proto se vám také neobjevilo obvyklé okno formuláře, na které lze umisťovat další komponenty, ale místo toho vidíte jiný typ formuláře, který je však nevizuální (tj. po spuštění apletu nebude vidět) a jeho úkolem je "pouze" zprostředkování událostí. Proto je nutné vytvořit ještě běžný typ formuláře typu TForm, který přidáme do projektu a bude vlastně tvořit samotné uživatelské rozhraní apletu. Vytvořte tedy takový formulář a odkaz na jeho jednotku musíte přidat do řádku uses u jednotky apletu. Celý kód pak tedy vypadá kupříkladu takto:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  CtlPanel, unit2;

type
  TAppletModule1 = class(TAppletModule)
    procedure AppletModuleActivate(Sender: TObject; Data: Integer);
  private
  { private declarations }
  protected
  { protected declarations }
  public
  { public declarations }
  end;

var
  AppletModule1: TAppletModule1;

implementation

{$R *.DFM}

end.

Nyní je potřeba zajistit, aby se po spuštění apletu tento nově přidaný formulář zobrazil. K tomu použijeme událost OnActivate modulu apletu:

procedure TAppletModule1.AppletModuleActivate(Sender: TObject;  Data: Integer);
begin
Form2 := TForm2.Create( self );
Form2.ShowModal;
Form2.Free;
end;

A to už se pomalu blížíme k závěru. Nyní již zbývá jen několik drobností. V okně Object Inspectoru můžete nastavit u modulu apletu několik vlastností. První je vlastnost AppletIcon, která určuje ikonu apletu, jež bude zobrazena v Ovládacích panelech. Caption zase určuje popisek, který je u ikony zobrazen. Důležitá je též položka Help, kam můžete napsat krátký popis apletu a tento text bude zobrazen v levé části okna Ovládacích panelů po označení vašeho apletu.

Zbývá nám poslední věc a tou je testování celého projektu. Pokud jste se již při tvorbě pokusili projekt spustit, jistě se vám ukázalo chybové hlášení o nutnosti specifikovat hostitelskou aplikaci. Je to samozřejmé, protože jak již bylo řečeno na začátku, nejedná se o klasickou aplikaci, ale vlastně o knihovnu. Proto z menu Run vyberte položku Parameters. Zde v prvním řádku Host Application vyplňte c:\windows\rundll32.exe (pro systémy na bázi NT c:\winnt\system32\rundll32.exe), do druhého řádku pak shell32.dll,Control_RunDLL c:\aplet.cpl (cestu samozřejmě nastavte k vašemu apletu).

Nyní již můžete programovat aplikaci způsobem, na který jste zvyklí. Na vizuální formulář můžete pochopitelně běžným způsobem přidávat komponenty a doplnit samotný funkční kód daného apletu. Když budete s prací hotovi, stačí výsledný soubor cpl zkopírovat do systémového adresáře Windows a po aktivaci okna Ovládacích panelů například z menu Start byste již váš aplet měli vidět.

Celá problematika programování aplikací Ovládacích panelů je pochopitelně mnohem rozsáhlejší a lze využívat řady dalších pokročilejších funkcí. Proto berte tento dnešní tip jako spíše takový úvod do vašeho vlastního experimentování.