Leven

Inzicht in getypte constanten in Delphi

Inzicht in getypte constanten in Delphi

Wanneer Delphi een gebeurtenishandler aanroept, worden de oude waarden van lokale variabelen weggevaagd. Wat als we willen bijhouden hoe vaak op een knop is geklikt? We zouden de waarden kunnen laten bestaan ​​door een variabele op unit-niveau te gebruiken, maar het is over het algemeen een goed idee om variabelen op unit-niveau alleen te reserveren voor het delen van informatie. Wat we nodig hebben worden meestal statische variabelen of getypte constanten in Delphi genoemd.

Variabel of constant

Getypte constanten kunnen worden vergeleken met geïnitialiseerde variabelen-variabelen waarvan de waarden zijn gedefinieerd bij binnenkomst in hun blok (meestal gebeurtenishandler). Een dergelijke variabele wordt alleen geïnitialiseerd wanneer het programma wordt gestart. Daarna blijft de waarde van een getypte constante tussen opeenvolgende aanroepen van hun procedures.

Het gebruik van getypte constanten is een zeer schone manier om automatisch geïnitialiseerde variabelen te implementeren. Om deze variabelen zonder getypte constanten te implementeren, moeten we een initialisatiesectie maken die de waarde van elke geïnitialiseerde variabele instelt.

Variabele getypte constanten

Hoewel we getypte constanten in de constsectie van een procedure verklaren, is het belangrijk om te onthouden dat het geen constanten zijn. Als u op elk gewenst moment in uw toepassing toegang hebt tot de ID voor een getypte constante, kunt u de waarde ervan wijzigen.

Als u getypte constanten aan het werk wilt zien, plaatst u een knop op een leeg formulier en wijst u de volgende code toe aan de OnClick-gebeurtenishandler:

procedure TForm1.Button1Click (Sender: TObject); const klikken: geheel getal = 1; // geen echte constante beginnen Form1.Caption: = IntToStr (klikken); klikken: = klikken + 1; einde;

Merk op dat elke keer dat u op de knop klikt, het bijschrift stapsgewijs wordt verhoogd.
Probeer nu de volgende code:

procedure TForm1.Button1Click (Sender: TObject); var klikken: geheel getal; beginnen Form1.Caption: = IntToStr (klikken); klikken: = klikken + 1; einde;

We gebruiken nu een niet-geïnitialiseerde variabele voor de teller voor klikken. Merk op dat die rare waarde in het bijschrift van de formulieren nadat u op de knop klikt.

Constante getypte constanten

Je moet het ermee eens zijn dat het idee van aanpasbare constanten een beetje vreemd klinkt. In 32-bits versies van Delphi Borland besloten om het gebruik ervan te ontmoedigen, maar ondersteunen ze voor Delphi 1 legacy-code.

We kunnen toewijsbare getypte constanten in- of uitschakelen op de compilerpagina van het dialoogvenster Projectopties.

Als u Assignable getypte constanten voor een bepaald project hebt uitgeschakeld, geeft Delphi u bij het compileren de fout 'Linkerzijde kan niet worden toegewezen aan' wanneer u probeert de vorige code te compileren. U kunt echter een toewijsbare getypte constante maken door te verklaren:

{$ J +} const klikken: geheel getal = 1; {$ J-}

Daarom ziet de eerste voorbeeldcode er als volgt uit:

procedure TForm1.Button1Click (Sender: TObject); const {$ J +} klikken: geheel getal = 1; // geen echte constante {$ J-} beginnen Form1.Caption: = IntToStr (klikken); klikken: = klikken + 1; einde;

Gevolgtrekking

Het is aan jou om te beslissen of je getypte constanten wilt toewijzen of niet. Het belangrijkste hier is dat getypeerde constanten, behalve ideaal voor tellers, ook ideaal zijn om componenten afwisselend zichtbaar of onzichtbaar te maken, of dat we ze kunnen gebruiken voor het schakelen tussen Booleaanse eigenschappen. Getypte constanten kunnen ook worden gebruikt in de gebeurtenishandler van TTimer om bij te houden hoe vaak zelfs is geactiveerd.


Bekijk de video: Week 5, continued (Augustus 2021).