Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

validacija na tekst unet u Edit [C++ Builder]

[es] :: C/C++ programiranje :: validacija na tekst unet u Edit [C++ Builder]

[ Pregleda: 2031 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ik0
Ivan Cekov
Information System Developer
Planning Authority Malta
Floriana, Malta

Član broj: 222385
Poruke: 158
95.180.190.*



+3 Profil

icon validacija na tekst unet u Edit [C++ Builder]02.06.2010. u 19:01 - pre 169 meseci
Do sada sam koristio ovaj kod

Code:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{if ((Key >= 'a') && (Key <= 'z') || Key == VK_BACK) {}     
       else
       {Key = 0;
       Beep();
       ShowMessage("Mozes koristiti samo slova");
              }}


Ali sada postoi problem, kada bi trebao pisati sa srpskom ili bilo koje druge podrske onda zapisue sve. Probao sam da iskoristim znanje iz Dev c++ ali isalpha mi ne radi u for ciklusu pa nikako nisam uspe da ga nagodim kako treba valjda...Ako moze neka pomos... Hvala

Kude tumbe i tri bandere
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
212.200.65.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: validacija na tekst unet u Edit [C++ Builder]02.06.2010. u 21:14 - pre 169 meseci
Koliko vidim, imas dva problema:
1. Sta se desava s kodom kada koristis PASTE (neki brojevi su na klipbordu, desni taster misa, Paste u to edit polje) u TEdit? OnKeyPress ce biti lagano zaobidjen.
2. Detekcija slova van opsega a..z

1)
Idi na:
http://codenewsfast.com/

Kljucne reci za pretragu:
subclass WM_PASTE TEdit

Potrazi recimo temu:
How to disallow a specific char in TEdit?

Tu ces naci kako se vrsi hvatanje WM_PASTE, a kod prilagodi tvojoj situaciji.


2) Ako si se opredelio za OnKeyPress, dodaj odmah na pocetku te funkcije:
ShowMessage("Mozes koristiti samo slova:" + IntToStr(Key) );
... cisto da vidis koji su kodovi (brojevi) slova kod žšđčć, pa to ugradi u postojeci kod:
if ((Key >= 'a') && (Key <= 'z') || Key == VK_BACK || Key == BROJ_ZA_PRVO_SLOVO || Key == BROJ_ZA_DRUGO_SLOVO || ...)

To bi trebalo da su negativne vrednosti.



Ipak, ja se ne bih opterecivao tim proverama, vec bih korisnika o greskama obavestio nakon pokusaja neke operacije za koju je kljucno da sadrzi samo slova i vratio ga na taj Edit.

 
Odgovor na temu

ik0
Ivan Cekov
Information System Developer
Planning Authority Malta
Floriana, Malta

Član broj: 222385
Poruke: 158
95.180.190.*



+3 Profil

icon Re: validacija na tekst unet u Edit [C++ Builder]02.06.2010. u 21:47 - pre 169 meseci
Upravo to sam i hteo da uradim, mislim probo sam da resim problem kada zacuvujem te podatke od edita u bazi. To sam probao sa for ciklusom, ali pa tu se nemogu snaci sa isalpha.

String a;
int b;
a=Edit1->Text;
b=a.Length();
for (int i=0; i<b; i++)
if (isalpha (a))
.....
.....

Radio sam sa Dev C++ i mesam kodove pa ispravi me gde gresim ili daj resenje za ovo...
Kude tumbe i tri bandere
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: validacija na tekst unet u Edit [C++ Builder]04.06.2010. u 11:06 - pre 169 meseci
Code (cpp):

bool __fastcall IsSrLatinica(Char& Karakter)
{
   AnsiString tekst = "ertzuiopšđasdfghjklčćžcvbnmERTZUIOPŠĐASDFGHJKLČĆŽCVBNM";
   bool      Result;
   Result = tekst.Pos(Karakter) > 0;
   return Result;
}
 


...
for (int i=1; i<=b; i++)
 
Odgovor na temu

ik0
Ivan Cekov
Information System Developer
Planning Authority Malta
Floriana, Malta

Član broj: 222385
Poruke: 158
95.180.190.*



+3 Profil

icon Re: validacija na tekst unet u Edit [C++ Builder]04.06.2010. u 16:26 - pre 169 meseci
Hvala na odgovorima. Mnogo mi je pomoglo.
Kude tumbe i tri bandere
 
Odgovor na temu

[es] :: C/C++ programiranje :: validacija na tekst unet u Edit [C++ Builder]

[ Pregleda: 2031 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.