Tyypillisten vakioiden ymmärtäminen Delphissä

Kun Delfoi kutsuu tapahtumakäsittelijää, paikallisten muuttujien vanhat arvot pyyhitään pois. Entä jos haluamme seurata kuinka monta kertaa painiketta on napsautettu? Voisimme saada arvot säilymään käyttämällä yksikkötason muuttujaa, mutta yleensä on hyvä idea varata yksikkötason muuttujat vain tiedon jakamiseen. Tarvitsemmemme nimeltään yleensä staattisiksi muuttujiksi tai kirjoitetuiksi vakioiksi Delphissä.

Muuttuva tai vakio

Tyypitettyjä vakioita voidaan verrata alustettuihin muuttujiin-muuttujiin, joiden arvot määritetään heidän lohkoonsa mennessä (yleensä tapahtumakäsittelijä). Tällainen muuttuja alustetaan vasta, kun ohjelma käynnistyy. Sen jälkeen kirjoitetun vakion arvo säilyy peräkkäisten proseduuripuhelujen välillä.

Kirjoitettujen vakioiden käyttö on erittäin puhdas tapa toteuttaa automaattisesti alustettuja muuttujia. Jotta nämä muuttujat voidaan toteuttaa ilman kirjoitettuja vakioita, meidän on luotava alustusosa, joka asettaa kunkin alustetun muuttujan arvon.

Muuttuvan tyyppiset vakiot

instagram viewer

Vaikka julistamme kirjoitetut vakiot prosessin vakio-osassa, on tärkeää muistaa, etteivät ne ole vakioita. Jos sinulla on sovelluksen missä tahansa vaiheessa pääsy tyypitetyn vakion tunnisteeseen, voit muuttaa sen arvoa.

Jos haluat nähdä kirjoitetut vakiot työssä, aseta painike tyhjälle lomakkeelle ja määritä seuraava koodi OnClick-tapahtumakäsittelijälle:

menettely TForm1.Button1Click (Lähettäjä: TObject); const napsautukset: kokonaisluku = 1; // ei ole totta vakioalkaa Muoto1.Kappaus: = IntToStr (napsautukset); napsautukset: = napsautukset + 1; pää; 

Huomaa, että joka kerta kun napsautat painiketta, kuvateksti-askeleet kasvavat tasaisesti.
Kokeile nyt seuraavaa koodia:

menettely TForm1.Button1Click (Lähettäjä: TObject); var napsautukset: kokonaisluku; alkaa Muoto1.Kappaus: = IntToStr (napsautukset); napsautukset: = napsautukset + 1; pää; 

Käytämme nyt aloittamatonta muuttujaa napsautuslaskurissa. Huomaa, että outo arvo lomakkeiden kuvateksteissä, kun olet napsauttanut painiketta.

Vakiotyyppiset vakiot

Sinun on hyväksyttävä, että ajatus muokattavista vakioista kuulostaa vähän omituiselta. Delphin 32-bittisissä versioissa Borland päätti estää niiden käytön, mutta tukea heitä Delphi 1 -koodin luomiseen.

Voimme ottaa käyttöön tai poistaa käytöstä määritettävät kirjoitetut vakiot Projektivalinnat-valintaikkunan Kääntäjä-sivulla.

Jos olet poistanut määritettävissä olevat tyyppiset vakiot tietystä projektista, Delphi antaa yrittäessäsi kääntää aiempaa koodia virheestä "Vasemmalle puolelle ei voida määrittää" kirjoitettaessa. Voit kuitenkin luoda määritettävän tyyppisen vakion ilmoittamalla:

{$ J +}const napsautukset: kokonaisluku = 1; {$ J}

Siksi ensimmäinen esimerkikoodi näyttää seuraavalta:

menettely TForm1.Button1Click (Lähettäjä: TObject); const{$ J +} napsautukset: kokonaisluku = 1; // ei ole totta vakio{$ J}alkaa Muoto1.Kappaus: = IntToStr (napsautukset); napsautukset: = napsautukset + 1; pää; 

johtopäätös

Sinun on päätettävä, haluatko kirjoitetut vakiot olla määritettävissä vai eivät. Tärkeää tässä on, että laskureille ihanteellisten tyyppisten vakioiden lisäksi ne ovat ihanteellisia komponentit vuorotellen näkyvät tai näkymättömät, tai voimme käyttää niitä vaihdettamaan minkä tahansa Boolen välillä ominaisuudet. Tyypillisiä vakioita voidaan käyttää myös TTimerin tapahtumakäsittelijän sisällä seurataksesi kuinka monta kertaa jopa on laukaistu.

instagram story viewer