Prvo, umesto ActivePageIndex, bolje je koristiti ActivePage, jer se u toku razvoja aplikacije index (redni broj nekog taba) može promeniti dodavanjem, pomeranjem ili uklanjanjem tabova. ActivePage pokazuje na TTabSheet koji je trenutno aktivan.
Jedna digresija. Ono što ja praktikujem je da SVIM komponentama dajem adekvatna imena prema vrsti komponente i nameni na određenoj formi. Na taj način mi je kasnije mnogo lakše da nađem željenu komponentu i da pristupim njenim svojstvima. Uglavnom praktikujem da nazive komponenti počnem sa 2-3 slova koja definišu tip komponente, pa tako na primer tsPrviTab, tsListaProizvoda, tsZadnjiTab, btnOK, btnCancel, frmGlavnaForma, frmProizvodi i slično.
Ako ne želiš da koristiš imena tabova, onda umesto indexa taba koristi Tag (integer tip) jer isti upravo služi za ovakve stvari. Tag je "user" property, tj. namenjen je da ga koristi programer i standardno se ne koristi nigde unutar VCL.
Imam i jednu malu ispravku/savet. U Pascalu se Boolean evaluacija sa jednim operandom ne poredi sa True ili False. U tvom slučaju imamo:
Code:
if jeLiOtvoren(nazivProzora)=false then
a obično je pravilo da se piše:
Code:
if not jeLiOtvoren(nazivProzora) then
Čak i sa više operanada može da se izbegne poređenje sa True i False. Tvoja konstrukcija nije pogrešna, samo malo odskače od standarda za pisanje jednostavnog i čitljivog koda.
Imam još par stvari koje bih ti rekao u vezi korišćenja ActivePage propertija, ali ću te za sada pustiti da malo sam eksperimentišeš

Ako naiđeš na problem, javi se.
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams