Паяльник

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Паяльник » Программирование » Как организовать ввод только латинских букв в Edit1 (Delphi)


Как организовать ввод только латинских букв в Edit1 (Delphi)

Сообщений 1 страница 4 из 4

1

Пытаюсь организовать ввод пароля в форме Delphi, использую для этого объект Edit1. Как сделать, чтобы вводились цифры и только латинские буквы ? Пароль закрывается звездочками

0

2

Можно так:

// Организация ввода только латин. букв !!!

В объекте Edit1 создадим обработчик события OnKeyPress: Edit1Change

procedure TForm1.Edit1Change(Sender: TObject; var Key: Char);
const Char_is_exclude: set of Char = ['А'..'я', 'Ё', 'ё'];
begin
if Key in Char_is_exclude then Key:=#0;
end;

Звездочками пароль:

Свойство объекта Edit1.PasswordChar:='*';

// Организация ввода только цифр !!!

В объекте Edit2 создадим обработчик события OnKeyPress: Edit2Change

procedure TForm1.Edit2Change(Sender: TObject; var Key: Char);
const Char_is_include: set of Char = ['0'..'9'];
begin
  if (not(Key in Char_is_include)) then Key:=#0;
end;

// Еще вариант

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
   '0'..'9',#8:   ;       // разрешает цифры, и Backspace (стирание)
    else Key:=Chr(0)
   end;
end;

// Можно использовать функции API
// чтобы не городить слоеный пирог

В объекте Form1 создадим обработчик события FormCreate

procedure TForm1.FormCreate(Sender: TObject);
  var style:cardinal;
begin
// Разрешаем ввод только чисел в поле Edit2
    style:=GetWindowLong(Edit2.Handle, GWL_STYLE);
    SetWindowLong(Edit2.Handle, GWL_STYLE, style + ES_NUMBER);
end;

0

3

Ага с этим все отлично !!! А как сделать чтобы ввод заканчивался нажатием кнопки ENTER, допустим если у меня только одно поле ввода ?

0

4

Думаю, что уже не актуально, ну да ладно напишу...

Создаем на форме Form1 объект Edit1.text;

Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     Caption:=IntToStr(Key);  // Смотрим коды нажатых клавиш в заголовке формы
     if Key=13 then Caption:=Edit1.text; // При нажатии на кнопку ENTER текст появляется в заголовке формы
end;

Думаю принцип понятен, можно обработать любую кнопку

0


Вы здесь » Паяльник » Программирование » Как организовать ввод только латинских букв в Edit1 (Delphi)


создать форум