Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизКак в эдите сделать токо ввод английскеих букв? Найти похожие ветки
← →
ПрогерШ (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c