Delphi - Tab Order lista lekérdezése és felhasználása programból

forráskód letöltése
Lehetőségünk adódik arra is egy programon belül, hogy lekérdezzük a Tab Order listát, vagyis, hogy milyen sorrendben következnek egymás után a komponensek, milyen sorrendben haladhat végig rajtuk a felhasználó, ha a Tab billentyűt nyomkodja. Lehetőségünk adódik arra is egy programon belül, hogy lekérdezzük a Tab Order listát, vagyis, hogy milyen sorrendben következnek egymás után a komponensek, milyen sorrendben haladhat végig rajtuk a felhasználó, ha a Tab billentyűt nyomkodja.


Hogy mire használjuk fel ezt a listát programban, az tetszőleges lehet. Mi most egy kék vonallal kötjük össze a komponensek bal felső sarkát a Tab Order sorrendjének megfelelően, mintegy megmutatva a felhasználónak, hogy mely sorrendben tud végighaladni a beviteli ablakokon.

Próbálja ki, hogy új komponenst tesz fel a Form-ra, vagy csak a rajta lévők pozícióját változtatja meg, majd indítsa újra a programot.

A Form-ra való rajzoláshoz az OnPaint eseményt kell felhasználnunk. Ez minden olyan esetben létrejön, amikor szükségessé válik a Form részének, vagy egészének az újrarajzolása.

Itt a GetTabOrderList eljárással lekérdezzük a Tab Order listát. Ehhez egy TList típusú változót kell átadnunk paraméterként. Végeredményül pedig ez a lista lesz feltöltve a komponensekkel a Tab Order-nek megfelelő sorrendben.

Mivel a TList típus egy olyan tömbnek fogható fel, melynek minden eleme képes egy mutatót (vagy bármilyen 32 bites értéket) tárolni, így jelen esetben most mindegyik eleme egy-egy a Form-on lévő komponenst fogja visszaadni.

Ezért lekérdezés után már csak egy FOR ciklusra van szükségünk, mellyel végigmegyünk az összes elemen és elvégezzük a vonal kirajzolását minden egyes komponens bal felső sarkát, vagyis a Top és Left property-ét figyelembe véve.