|
Вопрос # 5 531/ вопрос решён / |
|
Всем привет уважаемые программисты, я вот что хотел у вас унать как задать переменную, например a: array['A'..'Z'] of integer; и сделать так что если edit будет равен хоть како то букве из массива, то он не будет равен ничему, что то мучаюсь никак не сделаю
 |
Вопрос задал: skew (статус: Посетитель)
Вопрос отправлен: 28 июля 2011, 07:21
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Ну, может сделать как-то попроще?
const
WrongSymbols: set of Char = ['A'..'Z'];
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key in WrongSymbols
then Key:= #0;
end;
Если нужно, чтобы и строчные буквы невозможно было набрать, просто добавь нужное подмножество в константу WrongSymbols. Если же нужно, чтобы в Edit можно было ввести только нужные символы, например, только цифры, то лучше сделать так:
const
ValidSymbols: set of Char = ['0'..'9', #8];
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ValidSymbols)
then Key:= #0;
end;
З.Ы. От вставки из буфера обмена это не спасёт.
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 28 июля 2011, 08:14
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 28 июля 2011, 15:30; участников в обсуждении: 3.
|
Тов. Женька (статус: 3-ий класс), 28 июля 2011, 08:00 [#1]:
Вот, например, обработчик события KeyPress, не позволяющий вводить буквы.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const
AllowedChars: string = '0123456789';
var
i: Integer;
Ok: Boolean;
begin
i := 0;
Ok := False;
{ If you erase next line, user won't be able to type backspace }
if Key = #8 then Ok := True;
repeat
i := i + 1;
if Key = AllowedChars[i] then Ok := True;
until (Ok) or (i = Length(AllowedChars));
if not Ok then Key := #0;
end;
|
|
skew (статус: Посетитель), 28 июля 2011, 08:10 [#2]:
Спасибо, теперь все отлично))
|
28 июля 2011, 10:46: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.)
|
Gooddy (статус: 3-ий класс), 28 июля 2011, 15:30 [#3]:
Зачем массивы если есть множества?
Чисти код! Чисти код! Чисти код!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|