Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
6-1076595470
Ricko
2004-02-12 17:17
2004.04.18
приложение Клиент-Сервер (winsock)


1-1080572787
Xobbit
2004-03-29 19:06
2004.04.18
PopupMenu и чужое окно


14-1080303245
cypher
2004-03-26 15:14
2004.04.18
Филисофия программирования


3-1079618628
Miwa
2004-03-18 17:03
2004.04.18
dgs32.dll недостаточно для работы программы, которая


14-1080374927
Алексей_т
2004-03-27 11:08
2004.04.18
Требуется программист Delphi




   Наверх