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;