Izpratne par tipiskajām konstantēm Delfos

Kad Delfi izsauc notikumu apstrādātāju, vietējās mainīgās vērtības tiek izdzēstas. Ko darīt, ja mēs vēlamies sekot, cik reizes ir noklikšķināts uz pogas? Varētu būt, ka vērtības saglabājas, izmantojot vienības līmeņa mainīgo, taču parasti ir laba ideja rezervēt vienības līmeņa mainīgos tikai informācijas apmaiņai. To, kas mums vajadzīgs, Delfos parasti sauc par statiskajiem mainīgajiem vai drukātajām konstantēm.

Mainīgs vai nemainīgs

Raksturotās konstantes var salīdzināt ar inicializētajiem mainīgajiem-mainīgajiem, kuru vērtības tiek noteiktas, ieejot blokā (parasti notikumu apstrādātājs). Šāds mainīgais tiek inicializēts tikai tad, kad programma sāk darboties. Pēc tam saglabājas ierakstītas konstantes vērtība starp secīgiem izsaukumiem uz to procedūrām.

Ievadītu konstantu izmantošana ir ļoti tīrs veids, kā automātiski inicializēt mainīgos. Lai ieviestu šos mainīgos bez ievadītām konstantēm, mums būs jāizveido inicializācijas sadaļa, kas nosaka katra inicializētā mainīgā vērtību.

Mainīgas tipizētās konstantes

instagram viewer

Lai arī procedūras konstantā sadaļā mēs deklarējam ievadītās konstantes, ir svarīgi atcerēties, ka tās nav konstantes. Jebkurā savas lietojumprogrammas brīdī, ja jums ir piekļuve ievadītas konstantes identifikatoram, jūs varēsit mainīt tā vērtību.

Lai darbā redzētu drukātās konstantes, uzlieciet pogu tukšai veidlapai un piešķiriet OnClick notikumu apstrādātājam šādu kodu:

procedūra TForm1.Button1Click (Sūtītājs: TObject); const klikšķi: vesels skaitlis = 1; // nav patiesa konstantesākt Form1.Caption: = IntToStr (klikšķi); klikšķi: = klikšķi +1; beigas; 

Ņemiet vērā, ka katru reizi, kad jūs noklikšķiniet uz pogas, vienmērīgi veidojas parakstu palielinājums.
Tagad izmēģiniet šo kodu:

procedūra TForm1.Button1Click (Sūtītājs: TObject); var klikšķi: vesels skaitlis; sākt Form1.Caption: = IntToStr (klikšķi); klikšķi: = klikšķi +1; beigas; 

Tagad klikšķu skaitītājā izmantojam neinicializētu mainīgo. Ņemiet vērā, ka veidlapu parakstos dīvainā vērtība ir noklikšķinājusi uz pogas.

Pastāvīgi drukātās konstantes

Jāpiekrīt, ka modificējamo konstantu ideja izklausās mazliet dīvaini. 32 bitu versijās Delphi Borland nolēma atturēt no to izmantošanas, bet atbalstīt viņus attiecībā uz Delphi 1 mantoto kodu.

Dialoglodziņa Projekta opcijas lapā Compiler var iespējot vai atspējot Assignējamas drukātas konstantes.

Ja konkrētam projektam esat atspējojis Piešķiramas drukātas konstantes, mēģinot apkopot iepriekšējo kodu, Delphi kompilējot parādīs kļūdu “Kreiso pusi nevar piešķirt”. Tomēr jūs varat izveidot piešķiramu drukātu konstanti, paziņojot:

{$ J +}const klikšķi: vesels skaitlis = 1; {$ J-}

Tāpēc pirmais koda piemērs izskatās šādi:

procedūra TForm1.Button1Click (Sūtītājs: TObject); const{$ J +} klikšķi: vesels skaitlis = 1; // nav patiesa konstante{$ J-}sākt Form1.Caption: = IntToStr (klikšķi); klikšķi: = klikšķi +1; beigas; 

Secinājums

Jūsu ziņā ir izlemt, vai vēlaties, lai drukātās konstantes būtu piešķiramas. Svarīgi ir tas, ka ne tikai ideāli skaitītājiem, bet arī ievadītās konstantes ir ideāli piemērotas komponenti pārmaiņus redzami vai neredzami, vai arī mēs tos varam izmantot, lai pārslēgtos starp jebkuru Būla īpašības. Iegūtās konstantes var izmantot arī TTimer notikumu apstrādātājā, lai izsekotu, cik reizes pat ir iedarbinātas.