Как запретить ввод букв?

Тема в разделе "Delphi - Система", создана пользователем Pol, 3 янв 2005.

Статус темы:
Закрыта.
  1. Pol

    Pol Гость

    Как запретить ввод в окно редактирования Tedit всех символов кроме цифр.
    Чтобы написать примерно такую процедуру:

    procedure TForm1.Edit1Change(Sender: TObject);
    begin

    If Table1.IndexName :=('Number') then
    .....................{строка запрета ввода букв}

    end;
     
  2. zubr

    zubr Гость

    Pol
    Для этих целей удобнее, на мой взгляд, использовать событие KeyPress.
    Код (Text):
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    If Table1.IndexName='Number' then
    begin
     If not (Key in ['0'..'9']) then
     Key:=#0;
    end;
    end;
     
  3. DeLight

    DeLight Гость

    Да, но зато скопировать туда текст как два пальца...
     
  4. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Для: Pol
    юзай MaskEdit
     
  5. Guest

    Guest Гость

    А как в MaskEdit разрешить ввод неограниченного количества цифр, ну и запретить ввод букв?
     
  6. ArkaNN

    ArkaNN Гость

    А зачем собственно запрещать, может лучшше после ввода, при обработке, проверить все ли введено правильно.
    Код (Text):
    try
    StrToInt(Edit1.Text)
    except
    on EConvertError do
     ShowMessage('ОШИБКА');
    end;
     
  7. Spoiler

    Spoiler Гость

    Примерный код ( даю общую идею )

    y := введенный символ;
    s := '1234567890';
    fl := false;
    for i := 1 to length( s ) do
    if y <> s then fl := true

    if fl = false then key := 0; ( или key := #0 )

    броисть на кейдаун ( или на кей пресс посмотри должно работать )

    ЗЫ за возможные неточности прошу прощенья - это только концепция
     
  8. Barmutik

    Barmutik Гость

    Только надо ещё добавить обработку DEL и BackSpace
     
  9. Spoiler

    Spoiler Гость

    проверка кода кнопок и декрементное удаление строки
     
  10. Barmutik

    Barmutik Гость

    Проще не мчучаться и написать например так:

    Код (Text):
     if not (Key in ['0'..'9', #8]) then
     Key := #0;
     
  11. Spoiler

    Spoiler Гость

    согласен
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей