Delphi - Szerkesztési, vagy futási időben van-e aktuálisan a komponens?

forráskód letöltése
Mellékelt példában egy olyan komponenst láthatunk, melyben különböző tartalom jelenhet meg, ha szerkesztési időben vagyunk (Delphi-ben épp készítjük a programot), és különböző, ha futási időben (a kész programot futtatjuk).

Ezzel a módszerrel tehát megkülönböztethetjük azt az állapotot, hogy a program még csak készül, vagy már fut. Mellékelt példaprogram megnyitása előtt a SampleControl.pas-ban lévő komponenst telepítenie kell a Delphi alá.

A komponenst a TCustomControl osztályból származtatjuk. Fenti tulajdonság megvalósításán kívül semmilyen funkciója nincs a komponensnek, csupán a szemléltetés kedvéért készült.

A komponens tartalmának kirajzolása a Paint eljárás felülírásával történik. Itt kell a programot is két irányba ágaztatni.

Ha egy komponens ComponentState property-e tartalmazza a csDesigning konstanst, akkor aktuálisan szerkesztési időben vagyunk, különben a program már fut.

Ezt felhasználva képesek vagyunk különböző funkciókat futtatni.