W tej poradzie nauczymy się tworzyć maski znakowe. Maski znakowe pozwalają nam zabezpieczyć przed wpisaniem do programu niedozwolonych wartości. Jednocześnie odciąża to użytkownika programu od wpisania złego formatu danych.
Dlaczego stosować maski znakowe jest opisane wyżej. Poprę to przykładem.
Zmienna krotnosc określa wzmocnienie wzmacniacza operacyjnego i służy do ustalenia maksymalnych skal na osiach wykresu.
void __fastcall TForm1::Timer1Timer(TObject *Sender) { int krotnosc = Edit1->Text.ToInt(); // dalszy kod }
|
Co okres czasu Interval Timer'a wykonywane jest powyższe zdarzenie, aż do ustawienia właściwości Enabled na false bądĽ też zakończenia aplikacji.
Spróbujmy przewidzieć możliwe "najgorsze" przypadki pracy programu.
- Użytkownik wpisał w pole tekstowe literę, np. "a".
Wystąpi błąd konwersji.
- Użytkownik wpisał liczbę przekraczającą zakres zmiennej typu int.
- Użytkownik wpisał liczbę ujemną (wzmocnienie jako moduł U2/U1).
- Użytkownik wpisał liczbę zmiennoprzecinkową
- Użytkownik wpisał wyrażenie "437 - 58".
Jak widać, sytuacji w których program może się "wysypać" jest
mnóstwo.
Zadaniem programisty jest zabezpieczenie programu przed takimi sytuacjami.
Programista musi pamiętać, że użytkownik programu nie jest programistą i może się na tych zagadnieniach nie znać.
Wykorzystamy do tego celu komponent
MaskEdit z palety
Additional.
Wprowadzenie maski do w.w. komponentu możliwe jest na dwa sposoby:
1. z poziomu edytora maski.
W tym celu należy kliknąć prawym na MaskEdit i wybrać z menu
Input Mask Editor
2. z poziomu kodu programu, jak będziemy to robili poniżej.