Delphi - Fókuszt birtokoló objektumok kijelzése

forráskód letöltése
Készítünk egy olyan vizuális komponenst, mely automatikusan árnyékot, vagy keretet rajzol annak a komponensnek a körvonala köré, mely aktuálisan birtokolja a fókuszt.
Ha a felhasználó átlép egérrel, vagy Tab-al egy másik komponensre, akkor az árnyék, illetve a keret is mozog.
A mellékelt példaprogram megnyitása előtt a HighlightFocus.pas-ban lévő komponenst telepítenie kell a Delphi alá.
A komponensnek két működési formája közül (árnyék, keret) a Shade property-vel szabályozhatjuk, hogy melyik legyen az aktív.
Ha ezt a property-t igazra állítjuk, akkor a komponensek köré árnyék rajzolódik, ellenkező esetben keret.
Ezt a két lehetőséget mutatja be a Step01, illetve a Step02 könyvtárban lévő két példaprogram.
A trükk lényege abból áll, hogy a THighlightFocus komponenst olyan méretűre állítsuk, amekkora a fókuszt birtokoló komponens, majd kissé eltolva ezen komponens mögé helyezzük a THighlightFocus-t.
Most már csak a fókusz változás eseményét kell figyelünk, hogy mindig aktualizálni tudjuk a komponens helyzetét és méretét, így a CM_FOCUSCHANGED eseményhez létrehozunk egy eseménykezelő eljárást.