Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2012, 10:48   #1
Manya89
 
Аватар для Manya89
 
Регистрация: 21.02.2012
Сообщений: 9
Счастье Delphi. В поле Edit обработчик события KeyPress

делаю замену NumbersOnly вручную:
procedure TForm1.KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['0'..'9', #8]) then Key:=#0;
end;
а хотела:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['0'..'9', #8]) then Key:=#0;
end;

Делала обработчик событий в Edit. А почему вышло без Edit1? просто в Form1???
Manya89 вне форума Ответить с цитированием
Старый 21.02.2012, 12:49   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
А почему вышло без Edit1? просто в Form1???
Куда что вышло? Объясните подробнее. Код полностью рабочий для TEdit
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 21.02.2012, 12:56   #3
Manya89
 
Аватар для Manya89
 
Регистрация: 21.02.2012
Сообщений: 9
Радость

вот код который получился:
procedure TForm1.KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['0'..'9', #8]) then Key:=#0;
end;

вот код который должен быть:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['0'..'9', #8]) then Key:=#0;
end;

разница только в названиях процедур, и я не могла понять почему это разница вообще есть.

Вот моя ошибка:
в обработчике событий в строке OnKeyPress я написала KeyPress, а надо было Edit1KeyPress!!! Во тупая)))) Пошла ума набираться)))
Manya89 вне форума Ответить с цитированием
Старый 23.12.2012, 13:13   #4
AET
Пользователь
 
Регистрация: 29.02.2008
Сообщений: 60
По умолчанию

Код:
procedure TForm2.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in['a'..'я','А'..'Я']) then key:=#0;
end;
подскажите почему после даного кода у меня не работает клавиша bakspeis на данной программе
AET вне форума Ответить с цитированием
Старый 23.12.2012, 13:24   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Потому что key:=#0; означает отмену нажатия клавиш.
Добавь ее код в условие.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2012, 13:42   #6
AET
Пользователь
 
Регистрация: 29.02.2008
Сообщений: 60
По умолчанию

Код:
if not (Key in['a'..'я','А'..'Я']) and (Key<>#8) then key:=#0;
Код:
if not (Key in['a'..'я','А'..'Я', #8]) then key:=#0
а как цифры добавить

Код:
if not (Key in['a'..'я','А'..'Я','0'..'9',#8]) then Key:=#0;
все готово

Последний раз редактировалось AET; 23.12.2012 в 13:48.
AET вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработчик события OnError Randy.Mandy Microsoft Office Excel 4 05.02.2012 01:20
Обработчик события yardie Общие вопросы .NET 3 26.03.2011 18:30
События в edit (Delphi) Евгений1 Помощь студентам 8 08.03.2011 21:34
Динамический обработчик события SKYDOS Помощь студентам 2 11.04.2008 06:46
Обработчик события... Flash_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 12.03.2007 21:24