Un pic de istorie ...
Am introdus imediat în forma câmpul de introducere, toate semnate, și a crezut că totul 😉 apoi a dat un agent de test pentru a obține opinia sa. Și apoi a început. Sa constatat că în toate domeniile este necesar să se impună verificarea datelor introduse. De exemplu, în „Last Name“, „Nume“ și „Orientul Mijlociu“ nu poate intra în alfabetul latin, și toate personajele, și așa mai departe (valabil numai chirilice, spații unice sau cratime). După cum se arată mai târziu, oamenii nu caută să introducă ... De asta am început să aplice limita de intrare de caractere de către utilizator.
Filtrarea literelor și a numerelor câmpurilor de introducere (TEdit)
Deci, să trecem de la digresiunea lirică la afacere. Componenta de editare are un mare eveniment OnKeyPress. Evenimentul apare atunci când un caracter este introdus în câmp, caracterul este stocat în variabila cheie (tip Char). Aici este locul unde puteți limita introducerea de caractere, aceasta se face după cum urmează:
OnKeyPress pentru TEditSă analizăm codul. Compara variabilă cheie cu o serie de caractere, în acest caz, de la A la Z, în cazul în sus, iar dacă este îndeplinită condiția, atunci simbolul este afișat în câmpul de introducere. Dacă condiția nu este suficientă, resetați pur și simplu variabila cheie. Asta este, vom introduce pentru caracterele de intrare este o limită moale, care nu este în matrice „A“ .. „Z“. În cazul nostru, facem filtrarea literelor când tastăm câmpul de editare. Dar ce vă împiedică, de exemplu, să faceți același lucru în ComboBox și în alte componente pentru introducerea datelor text? Rețineți că condiția este "nu", ceea ce înseamnă că adevărul este că simbolul nu se află în intervalul de la A la Z.
Observați codul simbolului # 08 în stare? Acesta este codul din tabelul ASCII - înseamnă cheia Backspace. Când scrieți acest cod, am fost confruntat cu faptul că, dacă nu specificați un simbol, veți obține următoarele: Puteți face orice scrisoare de la A la Z, dar nu puteți modifica înregistrarea ... Așa că am permite în plus introducerea # 08, permițând astfel utilizatorului să modifice textul.
Un astfel de eveniment este în majoritatea câmpurilor de introducere a textului, introduceți codul și totul. Cu toate acestea, există un „dar“ - codul am testat atunci când scriu DLL pe Delphi XE 4 ... am probleme, am, de asemenea, scrie despre ele. Pentru a vă avertiza ...
Filtrarea intrării TEdit în DelphiXE4 ... O muște în unguent ...
Mediul este Delphi XE 4, iar studiourile lucrează cu șiruri codate în utf8 în loc de cp1251. Aici este rădăcina răului și codul de mai sus nu funcționează. Prin urmare, ar trebui să fie actualizate, aici este codul pentru Delphi XE ...
Aș dori, de asemenea, să ofer un sfat. Am făcut următoarea schemă de introducere a datelor:
Completați caseta de editare și apăsați Enter (ca intrare de confirmare) -> Verificați întregul datele de intrare -> câmp este evidențiată sau dor de pe.
Mai jos voi da o implementare a acestui sistem.