Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.01.2013, 12:57
Аватар для vladimirse
vladimirse vladimirse вне форума
Прохожий
 
Регистрация: 16.01.2013
Сообщения: 37
Репутация: 10
По умолчанию Edit не позволять вводить определенные символы

Доброго времени суток, уважаемые!
Подскажите пожалуйста, как можно запретить вводить в поле определенные символы, а при попытки ввести таковые делать, к примеру
Label1.Visible:=true?
Спасибо!
Ответить с цитированием
  #2  
Старый 16.01.2013, 13:35
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

обрабатывать нужное событие OnChange или OnKeyPress.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 16.01.2013, 13:47
Аватар для vladimirse
vladimirse vladimirse вне форума
Прохожий
 
Регистрация: 16.01.2013
Сообщения: 37
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
обрабатывать нужное событие OnChange или OnKeyPress.

Я так понимаю OnChange применяется, когда изменяется параметр Text, а OnKeyPress - когда нажимается клавиша соответствующаяя определенному ASCI-символу, ну и новерно она не будет срабатывать если текст в поле скопировать из буфера, я прав?

Значит, наверно, больше подойдет OnChange?


Все сделал! Спасибо!!!

Последний раз редактировалось vladimirse, 16.01.2013 в 13:58.
Ответить с цитированием
  #4  
Старый 16.01.2013, 16:26
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

можно "заблокировать" операцию Paste:
Код:
type
  TEdit = class(StdCtrls.TEdit)
  public
    procedure WMPASTE(var Msg: TMessage); message WM_PASTE;
  end;
...
{ TEdit }

procedure TEdit.WMPASTE(var Msg: TMessage);
begin
  //    
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 16.01.2013, 16:51
Аватар для vladimirse
vladimirse vladimirse вне форума
Прохожий
 
Регистрация: 16.01.2013
Сообщения: 37
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
можно "заблокировать" операцию Paste:
Код:
type
  TEdit = class(StdCtrls.TEdit)
  public
    procedure WMPASTE(var Msg: TMessage); message WM_PASTE;
  end;
...
{ TEdit }

procedure TEdit.WMPASTE(var Msg: TMessage);
begin
  //    
end;

Это пока еще рановато для меня
Я сделал так:
Код:
procedure TForm1.Edit3Change(Sender: TObject);
var
  i: integer;
begin
    for i := 1 to length(Edit3.Text) do
       begin
         if not (Edit3.Text[i] in ['0'..'9']) then
                  Label5.Visible:=True;
       end;
end;  
Ответить с цитированием
  #6  
Старый 16.01.2013, 19:55
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
По умолчанию

лучше так:

Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);   
begin  
 if Not (Key in ['0'..'9', #8])then Key:=#0;   
end;

будут только цифры вводится..))
__________________
уволен в запас!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025