Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Как в эдите сделать токо ввод английскеих букв?   Найти похожие ветки 

 
ПрогерШ   (2004-04-01 10:43) [0]

Мастаки? Чтобы не важно какая расскладка - вводились только символы английского алфавита?


 
[lamer]Barmaglot ©   (2004-04-01 10:51) [1]

Не очень понятно, что ты хочешь получить, попробуй это:

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ["a".."z","A".."Z"]) then key:=#0;
end;


 
ПрогерШ   (2004-04-01 10:55) [2]


> [lamer]Barmaglot ©   (01.04.04 10:51) [1]

Спасибо, но это чуть-чуть не то... Я хочу что-бы оператор не важно на какой расскладке - т.е. русская, английская, украинская - когда нажимал на клавиши с буквами - то вводились только английские. Т.е. не то что запрещались, а именно всегда вводились английские.


 
[lamer]Barmaglot ©   (2004-04-01 11:16) [3]

Методы есть разные... Самый простой приблизительно такой:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const
 A:    Array[0..31] of Char=("й","ц","у","к","е","н","г","ш","щ","з","х","ъ","ф","ы","в","а","п","р","о","л","д","ж","э","я","ч","с","м","и","т ","ь","б","ю");
 B:    Array[0..31] of Char=("q","w","e","r","t","y","u","i","o","p","[","]","a","s","d","f","g","h","j","k","l",";","""","z","x","c","v","b"," n","m",",",".");
var
 k:  integer;
begin
If (Key in ["а".."я"]) then
 For k:=0 to 31 do
   if A[k]=Key then Key:=B[k]

end;


 
Anatoly Podgoretsky ©   (2004-04-01 11:21) [4]

Key := Tbl[Key];
Без всяких If и For


 
[lamer]Barmaglot ©   (2004-04-01 11:26) [5]

то Anatoly Podgoretsky ©   (01.04.04 11:21) [4]

А в пятой дельфи есть?


 
Иван Бездомный ©   (2004-04-01 11:30) [6]

В событии OnKeyDown возвращается английский код нажатой клавиши вне зависимости от раскладки клавиатуры


 
ПрогерШ   (2004-04-01 11:30) [7]


> Anatoly Podgoretsky ©   (01.04.04 11:21) [4]

А что такое Tbl? uses?


 
ПрогерШ   (2004-04-01 11:34) [8]


> Иван Бездомный ©   (01.04.04 11:30) [6]

Ну и ? мне же надо выдать не код, а символ... А его можно выдать в событии onKeyPress


 
[lamer]Barmaglot ©   (2004-04-01 11:43) [9]

Ну зная то, что только что сказал Иван Бездомный ©   (01.04.04 11:30) [6]
код получается намного проще, приблизительно такой:

var
 sKey:     word;

procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
SKey:=Key
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
Key:=Chr(LoWord(SKey))
end;

P.s. написано навскидку ногами не бить...


 
Anatoly Podgoretsky ©   (2004-04-01 11:43) [10]

[lamer]Barmaglot ©   (01.04.04 11:26) [5]
Начиная по крайней мере Паскаля от Вирта, это начало 70 годов. Это обычный массив of char


 
[lamer]Barmaglot ©   (2004-04-01 11:48) [11]

то Anatoly Podgoretsky ©   (01.04.04 11:43) [10]

брм...Первый раз слышу о такой функции, да и дельфи плюется,
можно работающий примерчик, ну очень интересно стало...



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
6-1074854456
juiceman
2004-01-23 13:40
2004.04.18
what about Indy ?


14-1080076271
Andy BitOff
2004-03-24 00:11
2004.04.18
На банерах кликать надо?


6-1076414046
метеоролог
2004-02-10 14:54
2004.04.18
Компоненты для отправки почты


4-1076505703
juiceman
2004-02-11 16:21
2004.04.18
информация из чужогго окна


14-1079884644
Piter
2004-03-21 18:57
2004.04.18
История одного байта