Millal Delphi kutsub sündmusekäitleja, kustutatakse kohalike muutujate vanad väärtused. Mis siis saab, kui tahame jälgida, mitu korda nuppu on klõpsatud? Väärtused võivad püsida ühikutaseme muutuja abil, kuid üldiselt on hea mõte reserveerida ühikutaseme muutujad ainult teabe jagamiseks. Mida me vajame, nimetatakse tavaliselt staatilisteks muutujateks või trükitud konstanditeks Delphis.
Muutuv või püsiv
Tüüpilisi konstante saab võrrelda initsialiseeritud muutujatega-muutujatega, mille väärtused määratletakse nende blokki sisenemisel (tavaliselt sündmuste käitleja). Selline muutuja lähtestatakse alles siis, kui programm käivitub. Pärast seda püsib sisestatud konstandi väärtus järjestikuste protseduuridele kutsumiste vahel.
Trükitud konstandite kasutamine on väga puhas viis automaatselt initsialiseeritud muutujate rakendamiseks. Nende muutujate rakendamiseks ilma trükitud konstandideta peame looma initsialiseerimisjaotise, mis seab iga initsialiseeritud muutuja väärtuse.
Muutuja tüüpi konstandid
Kuigi deklareerime protseduuri konstantses osas trükitud konstandid, on oluline meeles pidada, et need pole konstandid. Kui teil on rakenduse mis tahes hetkel juurdepääs trükitud konstandi identifikaatorile, saate selle väärtust muuta.
Tüpitud konstantide nägemiseks tööl pange nupp tühjale vormile ja määrake OnClicki sündmuste käitlejale järgmine kood:
protseduur TForm1.Button1Click (saatja: TObject); const klõpsud: täisarv = 1; // pole tõeline konstantalustada Vorm1.Kapus: = IntToStr (klikid); klõpsud: = klõpsud + 1; lõpp;
Pange tähele, et iga kord, kui klõpsate nuppu, moodustatakse pealkirja sammhaaval.
Proovige nüüd järgmist koodi:
protseduur TForm1.Button1Click (saatja: TObject); var klõpsud: täisarv; alustada Vorm1.Kapus: = IntToStr (klikid); klõpsud: = klõpsud + 1; lõpp;
Nüüd kasutame klikkide loenduri jaoks initsialiseerimata muutujat. Pange tähele, et pärast nupule klõpsamist on vormide pealdises imelik väärtus.
Pidevalt trükitud konstandid
Pead nõustuma, et muudetavate konstantide idee kõlab natuke kummaliselt. Delphi 32-bitises versioonis otsustas Borland loobuda nende kasutamisest, kuid toetab neid Delphi 1 pärandkoodi jaoks.
Dialoogiboksi Projekti suvandid lehel Compileer saame lubada või keelata määratavad trükitud konstandid.
Kui olete antud projekti jaoks keelanud määratavad trükitud konstandid, annab Delphi eelmise koodi kompileerimisel proovimisel kommenteerimisel veateate "Vasakpoolsele küljele ei saa määrata". Kuid loodava määratava konstandi saate luua järgmiselt:
{$ J +}const klõpsud: täisarv = 1; {$ J-}
Seetõttu näeb esimene näidiskood välja järgmine:
protseduur TForm1.Button1Click (saatja: TObject); const{$ J +} klõpsud: täisarv = 1; // pole tõeline konstant{$ J-}alustada Vorm1.Kapus: = IntToStr (klikid); klõpsud: = klõpsud + 1; lõpp;
Järeldus
Teie otsustada, kas soovite trükitud konstandid määrata või mitte. Oluline on siinkohal see, et lisaks loenduritele ideaalsed on ka tippitud konstandid valmistamiseks komponendid on vaheldumisi nähtavad või nähtamatud või saame neid kasutada ükskõik millise tõeväärtuse vahel vahetamiseks omadused. Tüüpilisi konstante saab kasutada ka TTimeri sündmuste käitleja sees, et jälgida, mitu korda isegi on käivitatud.