Az indulás pillanatát, pedig a Project1.dpr állományba keressük és ne a Form1-nél. Itt, amikor az Application.Initialize sor lefut, azt követően kell ellenőriznünk, hogy Shift milyen állapotban van.
Ehhez segítséget a GetKeyboardState függvény szolgáltat, melynek paraméterként megadunk egy TKeyboardState típusú változót, mely nem más, mint egy bájtokat tartalmazó tömb. A függvény visszatérése után, ha annak a 16. eleme (VK_SHIFT) egy olyan bájt lesz, melynek 7 bitje 1, akkor a Shift gomb aktuálisan le van nyomva, különben nincs. Ettől függően tudjuk a szükséges elemek láthatóságát engedélyezni, vagy tiltani.
begin
Application.Initialize;
GetKeyboardState(kbs);
b:=(kbs[VK_SHIFT] and 128)<>0;
Application.CreateForm(TForm1, Form1);
Form1.PageControl1.Pages[2].TabVisible:=b;
Application.Run;
Application.BringToFront;
end.
A programunk elindulása után nem árt egy BringToFront hívás, mert egy gomb lenyomása mellett indított alkalmazásnál az a program maradhat az aktív, melyből indítottuk a sajátunkat. Éppen ezért célszerű a mellékelt példát nem a Delphi alól kipróbálni, hanem az Intézőből. A projekt lefordítása után az Intézőben üssünk egy Enter-t miközben az EXE-n állunk, majd próbáljuk ki ezt úgy is, hogy az Enter lenyomása előtt lenyomjuk és nyomva tartjuk a Shift gombot.
A Shift lenyomásától függően a PageControl harmadik lapja, hol látható lesz, hol pedig nem.