Förstå typade konstanter i Delphi

När Delphi åberopar en händelsehanterare, de gamla värdena på lokala variabler utplånas. Tänk om vi vill hålla reda på hur många gånger en knapp har klickats på? Vi kan ha värdena kvar genom att använda en enhetsnivåvariabel, men det är i allmänhet en bra idé att reservera enhetsnivåvariabler endast för att dela information. Vad vi behöver kallas vanligtvis statiska variabler eller typade konstanter i Delphi.

Variabel eller konstant

Typade konstanter kan jämföras med initialiserade variabler-variabler vars värden definieras vid posten till deras block (vanligtvis händelseshanterare). En sådan variabel initialiseras endast när programmet börjar köras. Därefter kvarstår värdet på en typkonstant mellan på varandra följande samtal till deras procedurer.

Att använda typade konstanter är ett mycket rent sätt att implementera automatiskt initialiserade variabler. För att implementera dessa variabler utan skrivna konstanter måste vi skapa ett initieringsavsnitt som anger värdet på varje initierad variabel.

instagram viewer

Variabla typkonstanter

Även om vi förklarar skrivna konstanter i const-avsnittet i en procedur, är det viktigt att komma ihåg att de inte är konstanter. När som helst i din ansökan, om du har tillgång till identifieraren för en typkonstant, kommer du att kunna ändra dess värde.

För att se skrivna konstanter på jobbet, sätta en knapp på ett tomt formulär och tilldela följande kod till händelseshanteraren OnClick:

procedur TForm1.Button1Click (avsändare: TObject); const klick: heltal = 1; // inte en riktig konstantBörja Form1.Caption: = IntToStr (klick); klick: = klick + 1; slutet; 

Observera att varje gång du klickar på knappen bildar du bildtexten stegvis.
Prova nu följande kod:

procedur TForm1.Button1Click (avsändare: TObject); var klick: heltal; Börja Form1.Caption: = IntToStr (klick); klick: = klick + 1; slutet; 

Vi använder nu en oinitialiserad variabel för klickräknaren. Lägg märke till det konstiga värdet i bildtexten när du klickar på knappen.

Konstant typade konstanter

Du måste hålla med om att idén om modifierbara konstanter låter lite konstig. I 32-bitarsversioner av Delphi beslutade Borland att avskräcka deras användning, men stödja dem för Delphi 1-arvkod.

Vi kan aktivera eller inaktivera Tilldelbara typkonstanter på Compiler-sidan i dialogrutan Projektalternativ.

Om du har inaktiverat Tilldelningsbara typkonstanter för ett visst projekt, när du försöker kompilera tidigare kod kommer Delphi att ge dig "Vänster sida kan inte tilldelas" -fel vid sammanställning. Du kan dock skapa tilldelningsbara typsatt konstant genom att deklarera:

{$ J +}const klick: heltal = 1; {$ J-}

Därför ser det första exemplet ut:

procedur TForm1.Button1Click (avsändare: TObject); const{$ J +} klick: heltal = 1; // inte en riktig konstant{$ J-}Börja Form1.Caption: = IntToStr (klick); klick: = klick + 1; slutet; 

Slutsats

Det är upp till dig att bestämma om du vill att typkonstanter ska kunna tilldelas eller inte. Det viktiga här är att förutom ideal för räknare är typade konstanter idealiska för att tillverka komponenter växelvis synliga eller osynliga, eller vi kan använda dem för att växla mellan alla booleska egenskaper. Typade konstanter kan också användas inuti TTimer händelseshanterare för att hålla reda på hur många gånger till och med har utlösts.

instagram story viewer