Wenn Delphi einen Event-Handler aufruft, werden die alten Werte lokaler Variablen gelöscht. Was ist, wenn wir verfolgen möchten, wie oft auf eine Schaltfläche geklickt wurde? Wir könnten die Werte beibehalten, indem wir eine Variable auf Einheitenebene verwenden, aber es ist im Allgemeinen eine gute Idee, Variablen auf Einheitenebene nur für den Informationsaustausch zu reservieren. Was wir brauchen, werden in Delphi normalerweise als statische Variablen oder typisierte Konstanten bezeichnet.
Typisierte Konstanten können mit initialisierten Variablen verglichen werden - Variablen, deren Werte beim Eintritt in ihren Block definiert werden (normalerweise Event-Handler). Eine solche Variable wird nur initialisiert, wenn das Programm gestartet wird. Danach bleibt der Wert einer typisierten Konstante zwischen aufeinanderfolgenden Aufrufen ihrer Prozeduren erhalten.
Die Verwendung typisierter Konstanten ist eine sehr saubere Methode zur Implementierung automatisch initialisierter Variablen. Um diese Variablen ohne typisierte Konstanten zu implementieren, müssen wir einen Initialisierungsabschnitt erstellen, der den Wert jeder initialisierten Variablen festlegt.
Obwohl wir im const-Abschnitt einer Prozedur typisierte Konstanten deklarieren, ist es wichtig, sich daran zu erinnern, dass es sich nicht um Konstanten handelt. Wenn Sie zu einem beliebigen Zeitpunkt in Ihrer Anwendung Zugriff auf den Bezeichner für eine typisierte Konstante haben, können Sie deren Wert ändern.
Setzen Sie eine Schaltfläche in ein leeres Formular, und weisen Sie dem OnClick-Ereignishandler den folgenden Code zu, um typisierte Konstanten bei der Arbeit anzuzeigen:
Verfahren TForm1.Button1Click (Absender: TObject); const Klicks: Integer = 1; // keine wahre Konstante Start Form1.Caption: = IntToStr (Klicks); Klicks: = Klicks + 1; Ende;
Beachten Sie, dass jedes Mal, wenn Sie auf die Schaltfläche klicken, Untertitelinkremente stetig gebildet werden.
Versuchen Sie nun den folgenden Code:
Verfahren TForm1.Button1Click (Absender: TObject); var Klicks: Integer; Start Form1.Caption: = IntToStr (Klicks); Klicks: = Klicks + 1; Ende;
Wir verwenden jetzt eine nicht initialisierte Variable für den Klickzähler. Beachten Sie, dass seltsame Werte in der Formulartitel, nachdem Sie auf die Schaltfläche klicken.
Man muss zustimmen, dass die Vorstellung von veränderbaren Konstanten etwas seltsam klingt. In 32-Bit-Versionen von Delphi entschloss sich Borland, von ihrer Verwendung abzuraten, unterstützte sie jedoch für älteren Delphi 1-Code.
Zuweisbare typisierte Konstanten können auf der Compiler-Seite des Dialogfelds Projektoptionen aktiviert oder deaktiviert werden.
Wenn Sie Zuweisbare typisierte Konstanten für ein bestimmtes Projekt deaktiviert haben und Sie versuchen, den vorherigen Code zu kompilieren, gibt Delphi beim Kompilieren den Fehler "Linke Seite kann nicht zugewiesen werden" aus. Sie können jedoch eine zuweisbare typisierte Konstante erstellen, indem Sie Folgendes deklarieren:
$ J + const Klicks: Integer = 1; $ J-
Daher sieht der erste Beispielcode folgendermaßen aus:
Verfahren TForm1.Button1Click (Absender: TObject); const $ J + Klicks: Integer = 1; // keine wahre Konstante $ J- Start Form1.Caption: = IntToStr (Klicks); Klicks: = Klicks + 1; Ende;