Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Фильтр для 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо