CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Ograniczenia wpisywania znaków w TEdit

Ograniczenia wpisywania znaków w TEdit

dział ogólny

Ograniczenia wpisywania znaków w TEdit

Nowy postprzez rafalskraba » sobota, 30 lipca 2011, 09:40

Witam

Piszę program w którym chcę zrobić ograniczenia wpisywania tylko określonych znaków w pole Edit.
Używam w tym celu metodę KeyPress.

Kod: Zaznacz cały
bool warunek = ((Key >= '0') && (Key <= '9') ||(Key==',')||
              (Key == VK_BACK)||
              (Key == VK_DELETE));
   if (!warunek)
   {
    Key = 0;


Dlaczego przy takim zapisie mogę wpisać również znak kropki.

Pozdrawiam

Rafał
"Jednym z rodzajów szczęśliwości jest zdolność podejmowania dobrych decyzji."

- Platon-
Avatar użytkownika
rafalskraba
Intelektryk
Intelektryk
 
Posty: 122
Dołączył(a): czwartek, 5 marca 2009, 10:20
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7 x64
Kompilator: RAD Studio XE2 Update 4 HotFix 1
SKYPE: rafal.skraba
Gadu Gadu: 0
    Windows 7Firefox

Re: Ograniczenia wpisywania znaków w TEdit

Nowy postprzez Cyfrowy Baron » sobota, 30 lipca 2011, 10:52

KOD cpp:     UKRYJ  
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
 if( !strchr( "0123456789,.", Key ) && Key != VK_BACK && Key != VK_DELETE)  Key = 0;
}
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Ograniczenia wpisywania znaków w TEdit

Nowy postprzez rafalskraba » sobota, 30 lipca 2011, 12:13

Cyfrowy Baron napisał(a):
KOD cpp:     UKRYJ  
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
 if( !strchr( "0123456789,.", Key ) && Key != VK_BACK && Key != VK_DELETE)  Key = 0;
}


ale ja nie chce żeby mozna było wczytać znak kropki, ponieważ w obliczeniach występuje błąd.
"Jednym z rodzajów szczęśliwości jest zdolność podejmowania dobrych decyzji."

- Platon-
Avatar użytkownika
rafalskraba
Intelektryk
Intelektryk
 
Posty: 122
Dołączył(a): czwartek, 5 marca 2009, 10:20
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7 x64
Kompilator: RAD Studio XE2 Update 4 HotFix 1
SKYPE: rafal.skraba
Gadu Gadu: 0
    Windows 7Firefox

Re: Ograniczenia wpisywania znaków w TEdit

Nowy postprzez Cyfrowy Baron » sobota, 30 lipca 2011, 15:35

Niestety, wychodzi na to, że kropki nie da się zablokować. Dlatego proponuję taki kod:

KOD cpp:     UKRYJ  
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, wchar_t &Key)
{
 if( !strchr( "0123456789,", Key ) && Key != VK_BACK && Key != VK_DELETE)
 {
  Key = 0;
 }
 if(Key == '.') Key = ',';
}
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 10 gości

cron