Пытаюсь организовать ввод пароля в форме Delphi, использую для этого объект Edit1. Как сделать, чтобы вводились цифры и только латинские буквы ? Пароль закрывается звездочками
Как организовать ввод только латинских букв в Edit1 (Delphi)
Сообщений 1 страница 4 из 4
Поделиться22014-12-09 16:44:02
Можно так:
// Организация ввода только латин. букв !!!
В объекте 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;
Поделиться32015-01-24 20:47:55
Ага с этим все отлично !!! А как сделать чтобы ввод заканчивался нажатием кнопки ENTER, допустим если у меня только одно поле ввода ?
Поделиться42015-10-05 19:40:59
Думаю, что уже не актуально, ну да ладно напишу...
Создаем на форме 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;
Думаю принцип понятен, можно обработать любую кнопку