Jak zrobić aby podczas wpisywania do EDIT było mozliwe naciskanie tylko niektórych klawiszy (np. cyferki). Pozostałe klawisze klawiatury byłyby nieaktywne (tzn nie powodowałyby żadnej reakcji w edit).
Wiem że do takich rzeczy powinno się używać MASKEDIT ale komponent ten posiada inne niedogodności - dlatego chce to zrobić w EDIT.
Pochwalony!
W OnKeyPress napisz:
if not(Key in ['0'..'9']) then Key := #0;
Chyba Ci o to chodzi :P
Gdzie popełniam błąd , bo reakcja jest tak że wszystko da się wpisać do edita, a ja chce tylko numerki (no może jeszcze minus) . Oto kod :
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
var
Form1: TForm1;
implementation
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['0'..'9']) then Key:=#0;
end;
end.
[glowa]
Gdzie popełniam błąd , bo reakcja jest tak że wszystko da się wpisać do edita, a ja chce tylko numerki (no może jeszcze minus)
Sebek:), u mnie identyczny kod dziala - wpisuja sie tylko numerki.
BTW, jak znajdziesz juz blad to do listy "dozwolonych" klawiszy warto dodac backspace...
No to ja już nie wiem , bo u mnie wpisuje się wszystko do EDITA. Może ktoś jeszcze coś wymyśli.
Albo jakby ktoś mógł jeszcze przetestować ten kod (podaje dokladnie w całości):
unit Unit1;
interface
uses
Windows, Classes, Controls, StdCtrls,forms;
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['0'..'9']) then Key:=#0;
end;
end.
To jakiś żart? Działa idealnie. Może wpisujesz do innego Edita? :-D
Ja jedynie zgodnie z sugestią pq dorzuciłem Backspace:
if not(Key in ['0'..'9', #8]) then
Key:= #0;
P. S. Kto z was wiedział, że Shift+Ins w IE tak jak w DOSie wkleja? Siedzę na widnowsie tyle lat i dopiero zauważyłem :)
Albo jakby ktoś mógł jeszcze przetestować ten kod
Wkleilem ten kod i u mnie dziala perfekt: do Edita wchodza tylko cyferki.
Nietety to nie jest żart [glowa]
Wpsałem (nie raz , nie dwa razy....) powyższy kod i do edita można wpisywać wszystko jak leci :-[
Jeszcze jedno : co macie w Object Inspectorze przy PASSWORDCHAR dla edit1 ???
......ja mam #0
Dodatkowo dla FORM1 dałem w KEYPREVIEW na TRUE.
I dalej nic !! [glowa]
A może to wina mojej klawiatury ?? - co prawda ma już swoje lata ale....
#0 i False. Zresztą zmiana na np. * i True nic nie zmienia
A ustawiłeś odpowiednio OnKeyPress edita?
Vogel jesteś genialny !!!!!!!!!!!!!!!!!!!!!!!!
[hurra] [hurra] [hurra] [hurra] [hurra] [hurra]
wreszcie działa
[hurra] [hurra] [hurra] [hurra] [hurra] [hurra]
Buchachachacha, sebek:), nie podpiąłeś procedurki pod zdarzenie?????
Vogel jesteś genialny !!!!!!!!!!!!!!!!!!!!!!!!
I bardzo skromny.
I wcale nie nabijam postów.
No no ......tylko prosze się nie śmiać ;p
[wstyd]