Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ВВод в TEdit определённых символов


Автор: pankerstein 7.1.2007, 11:46
Всем привет!

Мне нужно чтобы в Edit можно было вводить только определённые символы...например, только цифры или или().
Как такое сделать подскажите.


Автор: nv_xor 7.1.2007, 11:56
юзай TMaskEdit.

Автор: MetalFan 7.1.2007, 12:15
в OnKeyPress проверяй Key

Автор: VICTAR 7.1.2007, 12:28
Код

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

Автор: former 7.1.2007, 14:05
Можно вот так (обеспечивает ввод только чисел с разделителем):

Код

procedure TMainForm.InputControl(var Key:Char);
begin
if (Key in ['A'..'Z', 'a'..'z', 'А'..'Я', 'а'..'я', 'ё',
            '/','|', '\', '>', '<', '!', '@', '#', '$', '%',
            '^', '&', '*', '(', ')', '-', '+', '=', '_',
            '?', '"', '№', ';', ':', '{', '}', '[', ']',
            '`', '~', ' ']) then
begin
  Key:=#0;
end
else if (Key='.') then
begin
  Key:=#0;
  MessageBeep(MB_ICONHAND);
  MessageDlg('Для разделения целой и дробной частей используйте " , ".', mtError, [mbOk],0);
end;
end;

procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  InputControl(Key);
end; 

Автор: pankerstein 7.1.2007, 16:00
Цитата(VICTAR @ 7.1.2007,  12:28)
Код

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

Так на мой взгляд проще всего, огромное спасибо to victar!
И спасибо всем за то, что просветили, и так подняли тему  smile (Этот форум наверное самый живой в рунете smile )

С удовольствием полистаю темку TEdit vs TMaskEdit smile, а этот вопрос закрываю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)