![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
приветствую всех
у меня два вопроса: 1. как запретить вводить в поле латинницу 2. как в этом же текстовом поле, первую букву "поднимать" в верхний регистр автоматически спасибо |
|
#2
|
|||
|
|||
|
нашел на цифири:
изменю на буквы, и, надеюсь, прокатит Код:
procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char); begin if Key in ['0'..'9'] then key :=#0; end; остался только верхний регистр первого символа |
|
#3
|
||||
|
||||
|
Прокатит. В событие OnChange, используй AnsiUpperCase
|
|
#4
|
|||
|
|||
|
пробовал, спасибо
в общем варианте получилось так: Код:
function UpCaseRus(ch:Char):Char;
asm
CMP AL,'a'
JB @@exit
CMP AL,'z'
JA @@Rus
SUB AL,'a' - 'A'
RET
@@Rus:
CMP AL,'я'
JA @@Exit
CMP AL,'а'
JB @@yo
SUB AL,'я' - 'Я'
RET
@@yo:
CMP AL,'?'
JNE @@exit
MOV AL,'?'
@@exit:
end;
procedure TForm5.sEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key in ['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','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','!','@','#','$','%','^','&','*','(',')','_','-','+','<','>','/','\','|','.',',',' ']) then
begin
Key:=#0;
Application.MessageBox(PChar(' Поменяйте раскладку клавиатуры '),':|',MB_OK);
end;
with Sender as TEdit do
begin
if (Text = '') or (Text[SelStart] = ' ') or (SelLength = Length(Text)) then
begin
if Key in ['й','ц','у','к','е','н','г','ш','щ','з','х','ъ','ф','ы','в','а','п','р','о','л','д','ж','э','я','ч','с','м','и','т','ь','б','ю'] then
begin
Key:=UpCaseRus(Key);
end;
end;
end;
end; |
|
#5
|
|||
|
|||
|
работает безотказно
блин... сам спросил, сам ответил... ну может кто-то будет гуглить, найдет, понравится, останется |
|
#6
|
||||
|
||||
|
Так не про катило почему такой большой код если проблема решается так
Код:
if Key in ['A'..'z'] then key :=#0; |