[Delphi] wyłączanie części klawiatury

0

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.

0

Pochwalony!
W OnKeyPress napisz:

if not(Key in ['0'..'9']) then Key := #0;

Chyba Ci o to chodzi :P

0

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]

0

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...

0

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.

0

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 :)

0

Albo jakby ktoś mógł jeszcze przetestować ten kod

Wkleilem ten kod i u mnie dziala perfekt: do Edita wchodza tylko cyferki.

0

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

#0 i False. Zresztą zmiana na np. * i True nic nie zmienia

0

A ustawiłeś odpowiednio OnKeyPress edita?

0

Vogel jesteś genialny !!!!!!!!!!!!!!!!!!!!!!!!
[hurra] [hurra] [hurra] [hurra] [hurra] [hurra]
wreszcie działa
[hurra] [hurra] [hurra] [hurra] [hurra] [hurra]

0

Buchachachacha, sebek:), nie podpiąłeś procedurki pod zdarzenie?????

0

Vogel jesteś genialny !!!!!!!!!!!!!!!!!!!!!!!!

I bardzo skromny.
I wcale nie nabijam postów.

0

No no ......tylko prosze się nie śmiać ;p
[wstyd]

1 użytkowników online, w tym zalogowanych: 0, gości: 1