Az, hogy egy komponens hol jelenik meg attól függ, hogy milyen ablak van megadva „szülőként”. A szülő nem feltétlenül azonos a komponens létrehozójával (Owner). Egy komponens szülőjét megadhatjuk a Parent property-ben, de mivel ez egy TWinControl objektumot vár, ezért ez nem mindig lehetséges. Használhatjuk viszont a SetParent API függvényt a szülő ablak megadására, mivel itt csak az ablak leírójára van szükség (HWND).
A feladat tehát az, hogy megkeressük a TaskBar ablakának leíróját. Ezt egyszerűen megkaphatjuk a FindWindow függvény használatával.

FindWindow
function FindWindow(
lpClassName,
lpWindowName: PChar
): HWND; stdcall;
Ha egy létező ablak leírójára van szükségünk, akkor használhatjuk ezt a függvényt annak lekérdezésére.
Paraméterek
lpClassName
Ebben a paraméterben kell megadnunk az ablak osztályának nevét.
lpWindowName: PChar
Ha nem tudjuk az ablak osztályának nevét, akkor az ablak nevét is megadhatjuk ebben a paraméterben.
A két paraméter közül elég csak az egyiket megadnunk, ekkor a másik paraméterben adjunk meg nil-t. Ha nem ismerjük az osztály és az ablak nevét, akkor használjuk a Delphi-hez tartozó WinSight32 segédprogramot, amivel ezt a két tulajdonságot megkereshetjük.
Visszatérési érték
A függvény visszatérési értéke az ablak leírója, vagy 0, ha a megadott paraméterek alapján a leírót nem találta meg.
A TaskBar ablak osztályának neve „Shell_TrayWnd”, tehát a lekérdezés az alábbi módon lehetséges:
var
TrayWnd: HWND;
...
TrayWnd:=FindWindow('Shell_TrayWnd', nil);
Most már könnyű dolgunk van, mert a SetParent függvénnyel beállíthatjuk a komponens (adott esetben ez egy Button komponens) szülőjeként a TaskBar ablakot. Mi viszont a gombot a Start gomb alatt akarjuk elhelyezni, méghozzá úgy, hogy a gomb mérete megegyezzen a Start gomb méretével.
Mivel a Start gomb is egy ablak, így meg kell keresni annak is a leíróját, mivel ennek ismeretében a többi adat is megtudható. Egy ablak gyermek ablakait az EnumChildWindows függvénnyel kereshetjük meg.

EnumChildWindows
function EnumChildWindows(
hWndParent: HWND;
lpEnumFunc: TFNWndEnumProc;
lParam: LPARAM
): BOOL; stdcall;
Ezt a függvényt használhatjuk akkor, amikor egy ablak gyermek ablakait szeretnénk megkeresni.
Paraméterek
hWndParent: HWND
Ebben a paraméterben kell megadni annak az ablaknak a leíróját, amelynek a gyermek elemeit keressük.
lpEnumFunc: TFNWndEnumProc
Ebben a paraméterben egy callback függvényt adhatunk meg, amely minden egyes megtalált ablaknál meghívásra kerül. A függvénynek a következőképpen kell kinéznie:
function EnumChildProc(Handle: HWND; lParam: LPARAM): boolean; stdcall;
A Handle paraméterben kapjuk meg a megtalált ablak leíróját, az lParam paraméterben pedig az EnumChildWindows függvény lParam paraméterének értékét.
lParam: LPARAM
Ebben a paraméterben egy tetszőleges értéket megadhatunk, amelyet a callback függvényben használhatunk fel.
Visszatérési érték
A függvény visszatérési értéke igaz, ha a művelet sikerült, és hamis, ha nem.
Mivel mi a Start gombot keressük, ezért az EnumChildProc függvényben megkapott ablak leíróhoz tartozó osztály nevet lekérdezzük a GetClassName függvénnyel. A Start gomb osztályának neve „Button”. Ha ezt megtaláltuk, akkor a leírót eltároljuk az FHandle globális változóban. Ezután már e GetWindowRect függvénnyel lekérdezhetjük a Start gomb koordinátáit, amiből a méretek is kiszámíthatók.
Ugyanezt a módszert felhasználhatjuk akkor is, amikor mondjuk az órát is tartalmazó gyermek ablakba szeretnénk elhelyezni egy komponenst. Ekkor ezt az ablakot kell megkeresnünk (az osztály neve „TrayNotifyWnd”) és eltárolnunk az FHandle változóban, majd ezt a leírót adhatjuk meg a komponens szülőjeként a SetParent függvénynél.