Piotr
Wójcik
Programista, IPC
s.c.
Marcin
Nizioł
Analityk SI /
programista C#, RCGW
S.A.
Temat: Filtrowanie wpisywanych znaków w TextBox'ie
Oprogramuj sobie zdarzenie nacisniecia klawisza i po sprawie.Temat jest na tyle prosty ze wygooglasz go sobie w kilka chwil.
Piotr M. programista
Temat: Filtrowanie wpisywanych znaków w TextBox'ie
Aspirant Piotr Wójcik:
potrzebuje procedury uniemożliwiającej wpisywanie do TextBox'a niektórych znaków np. '.":; itp.?
private void textBox1_KeyPress( object sender, KeyPressEventArgs e )Piotr F. edytował(a) ten post dnia 09.09.08 o godzinie 18:10
{
if ( e.KeyChar == '.' )
{
e.Handled = true;
}
}
konto usunięte
Temat: Filtrowanie wpisywanych znaków w TextBox'ie
W Delphi można umożliwić wpisywanie tylko niektórych znaków np. cyfr w TEdit w następujący sposób:// zdarzenie OnKeyPress, Formularz Form1: TForm, komponent Edit1: TEdit
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if not (Key in ['0'..'9']) then Key:=#0;
// przypisując do Key wartość #0 (NULL) uniemożliwiamy
//wprowadzenie znaków spoza zakresu 0 do 9 więc można wpisać tylko
//cyfry
end;
Można również oprogramować komponent tak aby można było wprowadzić dany znak np. przecinek tylko raz.
Przykład:
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if not (Key in ['0'..'9',',',#8]) then Key:=#0
else if Key=',' then
if Pos(Key,Edit1.Text)<>0 then Key:=#0;
end;
Pozdrawiam.Dariusz Rorat edytował(a) ten post dnia 11.11.09 o godzinie 20:48
Mariusz
Bułkowski
W tajnej służbie Jej
Królewskiej Mości
Temat: Filtrowanie wpisywanych znaków w TextBox'ie
A co jak user zna klawisze skrótówCtrl-V ?
konto usunięte
Temat: Filtrowanie wpisywanych znaków w TextBox'ie
Jeżeli oprogramujemy zdarzenie OnKeyPress tak jak to przedstawiłem na przykładnie nie można wkleić tekstu do tego pola przy pomocy skrótu Ctrl+V nawet jeżeli zawiera tylko cyfry (jeżeli to zdarzenie nie jest oprogramowane to jest to możliwe i można wkleić dowolny tekst). Testowałem to już na Delphi i Lazarusie. Możliwe że istnieje możliwość oprogramowania tego komponentu tak aby można było wklejać np. tylko cyfry a liter nie ale jeszcze tego nie próbowałem.Muszę przyznać że pisanie programów "idiotoodpornych" jest dość trudne ponieważ trzeba uwzględnić różne operacje na tym komponencie. W razie potrzeby można użyć TMaskEdit zamiast TEdit.
Piotr M. programista
Temat: Filtrowanie wpisywanych znaków w TextBox'ie
W razie czego można pobierać wartość przez StrToIntDef(edit.text, 0) ;)konto usunięte
Temat: Filtrowanie wpisywanych znaków w TextBox'ie
Dariusz Rorat:[...]
Muszę przyznać że pisanie programów "idiotoodpornych" jest dość trudne ponieważ trzeba uwzględnić różne operacje na tym komponencie.[...]
Noo, pewnie trzeba jednak uwzględnić... Cóż, praca inżyniera na ogół jest trudna i, za przeproszeniem, odpowiedzialna.
A co powiecie, Panowie, o tym: http://wiadomosci.gazeta.pl/Wiadomosci/1,80277,7242810... ?Wojciech Błoński edytował(a) ten post dnia 12.11.09 o godzinie 21:23
konto usunięte
Temat: Filtrowanie wpisywanych znaków w TextBox'ie
IMO najlepszym rozwiązaniem jest funkcja która potraktuje text odpowiednim RegExp'em. Można jej użyć w różnych eventach: OnKeyPress i OnExit (na wypadek ctrl+v) powinny załatwić temat.Następna dyskusja: