![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтр для Edit [D5, Win95/98, Win2k]
VJar © (2002-10-18 00:25:00)Как мне сделать так, что в Edit можно было вводить только цифры и арифметические операции? Все остальные символы и знаки нужно запретить (блокировать).
Леван (2002-10-21 16:04:00) [1]while true do
begin
try
result:=strtoint(edit.text);
break;
except
showmessage("nedopustimii simvol);
end;
end;
edit.visible:=false;
drugoi_komponent.setfocus();
poka pravilnoe chislo ne budet v edit, ne viskochit - chto i trebovalos!
Hiqwer (2002-10-21 12:01:00) [2]Обратит ли хоть кто-то внимание, что проверять надо не отдельный символ, а весь текст!!!
1.2.3.4.5 это не число!
sicoz (2002-10-21 10:11:00) [3]procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in [DecimalSeparator,"0".."9",#8]) then begin
Key:=#0;
beep;
end;
end;
Или
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or ES_NUMBER);
end;
Eugene_post (2002-10-20 21:49:00) [4]procedure TGoodsForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key<"0") or (Key>"9") Then
if Key=#13 then
begin
Edit2.SetFocus;
Exit;
end
else
if (Key<>".") Then
if Key=#8 Then
Exit
else
begin
MessageDlg("
pirat (2002-10-18 22:52:00) [5]А я говорил!
2Song
Так что в данном случае путь через Хабаровск короче, особенно если других и нет.
VictorT (2002-10-18 20:07:00) [6]
> DSmile (18.10.02 14:04)
> MaskEdit
Имхо с MaskEdit лучше не связываться, глюкавый он (во всяком случае на 5-м Билдере).
Hiqwer (2002-10-18 18:15:00) [7]Шырее надо смотреть на мир.
12..24
eeE123
------23
Все проскоче на ура во всех данных примерах. Шо за числа такие?
A в стандартном MaskEdit не символа маски включающего (+,-,.,E,e,0..9), а про позиции символов вообще ...
Так, что все гораздо сложнее.
Song (2002-10-18 15:11:00) [8]2pirat © (18.10.02 08:37)
Это тоже самое что если нужно ехать из СПб в Москву, то Вы в данном случае едите через Хабаровск.
DSmile (2002-10-18 14:04:00) [9]MaskEdit
Gennadiy (2002-10-18 09:44:00) [10]В обработчике KeyPress компонента Edit1? можно создать примерную процедура, она будет обрабатывать клавиши "BackSpace", а также символы допустимые для вещественного числа:
procedure TForm1.Edit1.KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in [#8,"0".."9","+","E","e",DecimalSeparator]) then Key:=#0;
end;
pirat (2002-10-18 08:37:00) [11]А еще здесь где-то был мой тред про то же самое, только с подменой оконной функции :)))
MBo (2002-10-18 00:30:00) [12]в обработчике KeyPress проверяй Key и если не нравится, делай Key:=#0