MaskEdit PDF Drukuj Email
Wpisał doctor   
Poniedziałek, 19. Luty 2007 13:53
MaskEdit - zabezpieczenie przed wpisaniem do pole tekstowego niedozwolonych wartości

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.

  • Wpisywanie liczby trzycyfrowej.

void __fastcall TForm1::FormCreate(TObject *Sender)
{
MaskEdit1->EditMask = "000";
}Wpisywanie liczby trzycyfrowej zaczynającej się na 5.

  • Wpisywanie liczby trzycyfrowej zaczynającej się na 5.

void __fastcall TForm1::FormCreate(TObject *Sender)
{
MaskEdit1->EditMask = "500";
}

  • Wpisywanie liczby trzycyfrowej mającej pośrodku cyfrę 3.

void __fastcall TForm1::FormCreate(TObject *Sender)
{
MaskEdit1->EditMask = "030";
}

  • Format kodu pocztowego xx-xxx

void __fastcall TForm1::FormCreate(TObject *Sender)
{
MaskEdit1->EditMask = "00-000";
}

  • Format czasu hh:mm

void __fastcall TForm1::FormCreate(TObject *Sender)
{
MaskEdit1->EditMask = "!90:00";
}

  • wpisywanie samych liter

void __fastcall TForm1::FormCreate(TObject *Sender)
{
MaskEdit1->EditMask = "LLL";
}

gdzie: ilość znaków LLL oznacza ilość wpisywanych znaków (liter).

Do określenia maks. ilości wprowazdanych znaków możemy ustawić własność MaxLength w Inspektorze obiektów komponentu MaskEdit.
Komentarze
Dodaj nowy Szukaj
+/-
Napisz komentarz
Nick:
E-mail:
 
Strona www:
Tytuł:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Proszę wpisać kod antyspamowy widoczny na obrazku.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Ostatnia aktualizacja: Piątek, 10. Lipiec 2009 14:01
 
 

Losowy obraz

b12.jpg

Gościmy

Naszą witrynę przegląda teraz 13 gości 




| | | |