Главная страница
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.046 c
1-1080762135
h010d
2004-03-31 23:42
2004.04.18
Реакция на изменение системных метрих


1-1080718517
}|{yk
2004-03-31 11:35
2004.04.18
Скопировать диапазон значений в Excel


14-1080103983
Alexey
2004-03-24 07:53
2004.04.18
ABC Компонента для дельфи 7, где взять?


1-1080894120
IrviS
2004-04-02 12:22
2004.04.18
Как сделать для кнопки свойство ShortCut Ctrl + "+"


3-1080129376
TATIANA
2004-03-24 14:56
2004.04.18
QuickReport