Zrozumienie wpisanych stałych w Delphi

Gdy Delfy wywołuje moduł obsługi zdarzeń, stare wartości zmiennych lokalnych są usuwane. Co jeśli chcemy śledzić, ile razy przycisk został kliknięty? Możemy utrzymać wartości przy użyciu zmiennej na poziomie jednostki, ale ogólnie dobrym pomysłem jest rezerwowanie zmiennych na poziomie jednostki tylko w celu udostępniania informacji. To, czego potrzebujemy, nazywa się zwykle Delphi zmiennymi statycznymi lub stałymi maszynowymi.

Zmienna lub stała

Wpisane stałe można porównać z zainicjowanymi zmiennymi zmiennymi, których wartości są definiowane przy wejściu do ich bloku (zwykle program obsługi zdarzeń). Taka zmienna jest inicjowana tylko wtedy, gdy program zaczyna działać. Następnie wartość wpisywanej stałej utrzymuje się między kolejnymi wywołaniami ich procedur.

Używanie stałych wpisanych jest bardzo czystym sposobem implementacji automatycznie inicjowanych zmiennych. Aby zaimplementować te zmienne bez stałych wpisanych, musimy utworzyć sekcję inicjalizacji, która ustawia wartość każdej zainicjowanej zmiennej.

instagram viewer

Stałe typowane zmienne

Chociaż deklarujemy stałe wpisane w sekcji const procedury, należy pamiętać, że nie są one stałymi. W dowolnym momencie aplikacji, jeśli masz dostęp do identyfikatora wpisanej stałej, będziesz mógł zmodyfikować jej wartość.

Aby zobaczyć wpisane stałe w pracy, umieść przycisk w pustym formularzu i przypisz następujący kod do procedury obsługi zdarzeń OnClick:

procedura TForm1.Button1Click (Sender: TObject); const kliknięcia: liczba całkowita = 1; // nie prawdziwa stałazaczynać Form1.Caption: = IntToStr (kliknięcia); kliknięcia: = kliknięcia + 1; koniec; 

Zauważ, że za każdym razem, gdy klikniesz przycisk, stopniowo zwiększają się napisy.
Teraz wypróbuj następujący kod:

procedura TForm1.Button1Click (Sender: TObject); var kliknięcia: liczba całkowita; zaczynać Form1.Caption: = IntToStr (kliknięcia); kliknięcia: = kliknięcia + 1; koniec; 

Teraz używamy niezainicjowanej zmiennej dla licznika kliknięć. Zauważ, że po kliknięciu przycisku dziwna wartość w podpisie formularza.

Stałe typowane stałe

Musisz się zgodzić, że pomysł stałych modyfikowalnych brzmi trochę dziwnie. W 32-bitowych wersjach Delphi Borland postanowił zniechęcić do ich używania, ale obsługuje je dla starszego kodu Delphi 1.

Możemy włączyć lub wyłączyć Przypisywalne stałe tekstowe na stronie kompilatora w oknie dialogowym Opcje projektu.

Jeśli wyłączyłeś możliwe do przypisania stałe wpisywane dla danego projektu, podczas próby kompilacji poprzedniego kodu Delphi wyświetli komunikat „Po lewej stronie nie można przypisać błędu” podczas kompilacji. Możesz jednak utworzyć przypisywalną stałą maszynową, deklarując:

{J J +}const kliknięcia: liczba całkowita = 1; {J J}

Dlatego pierwszy przykładowy kod wygląda następująco:

procedura TForm1.Button1Click (Sender: TObject); const{J J +} kliknięcia: liczba całkowita = 1; // nie prawdziwa stała{J J}zaczynać Form1.Caption: = IntToStr (kliknięcia); kliknięcia: = kliknięcia + 1; koniec; 

Wniosek

Od Ciebie zależy, czy chcesz wpisywać stałe, czy nie. Ważną rzeczą jest tutaj to, że oprócz ideału dla liczników, stałe maszynowe są idealne do tworzenia komponenty widoczne na przemian lub niewidoczne, lub możemy ich użyć do przełączania między dowolnymi logicznymi wartościami logicznymi nieruchomości. Stałe wpisane mogą być również używane w module obsługi zdarzeń TTimer, aby śledzić, ile razy nawet zostało wyzwolone.