Вниз
Скачать: CL | DM;

Своя внутренняя переключалка клавиатуры...   Найти похожие ветки 

 
Dimedrol ©   (2002-04-09 10:32) [0]

Коллеги, вот уже недопустимо долго бьюсь над сабжем ;-)

В общем: есть МЕМО, и там хочу по CTRL переключать языки,
например - Русский и English.

Дело в том, что у меня еще всякие события заключены в этом МЕМО,
например отработка макросов и т.п.
А вот переключение языка - барахлит...

вот мой код :


procedure TMF.MemoRUKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key<>17) then SomeKeyUsed:=true else CtrlHold:=true;

SomeKeyUsed - для того чтобы отсекать комбинации
клавиш, что вместе с CTRL идут...

// M H I J
if ((Key=77) or (Key=72) or (Key=73) or (Key=74))
and ((ssCtrl in Shift) and (not (ssAlt in Shift)) and (not (ssShift in Shift)))
then Key_M:=true; //Ctrl+H Ctrl+M killing
end;


procedure TMF.MemoRUKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var HandleK:HKL;
begin
Application.ProcessMessages;
if (Key=17) and (not (ssAlt in Shift)) and (not (ssShift in Shift)) then
begin
if (CtrlHold) and (not SomeKeyUsed) then
begin
SwitchMemoRULayout;
MemoRU.Font.Charset:=RUCharset;
HandleK:=LoadKeyboardLayout(pchar(CurrentLayout), KLF_ACTIVATE);
ActivateKeyboardLayout(HandleK, 0);
end;
CtrlHold:=false;
SomeKeyUsed:=false;
exit;
end;
Application.ProcessMessages;
if Key=17 then CtrlHold:=false;
//SomeKeyUsed:=false;
HandleKey(Key,Shift,MemoRU);
end;

procedure TMF.MemoRUKeyPress(Sender: TObject; var Key: Char);
begin
if CtrlHold and Key_M then
begin Key:=#0; Key_M:=false; //Ctrl+M killing
end;
end;


Вот такая фигняяяя....
Коллеги, никто не сталкивался ?
Поделитесь опытом плиз...


 
Den_   (2002-04-09 17:07) [1]

Как программно переключить раскладку клавиатуры?
--------------------------------------------------------------------------------


LoadKeyboardLayout("00000409", KLF_ACTIVATE); // английский
LoadKeyboardLayout("00000419", KLF_ACTIVATE); // русский


 
Dimedrol ©   (2002-04-10 15:37) [2]

2 Den_
Ну ты силееееен ! ;-)

Мой сорец-то смотрел ? ;-)))



Страницы: 1 вся ветка

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



Память: 0.45 MB
Время: 0.01 c
7-70047
Tsatur Soft
2002-01-24 23:05
2002.04.22
Шрифт


3-69672
roman_tutov
2002-04-03 12:54
2002.04.22
компонент Table & memo поле


14-69999
McSimm + McSimm
2002-03-15 21:06
2002.04.22
Извините, просто тест


1-69896
avatarx
2002-04-09 13:24
2002.04.22
TList to file?


1-69846
f0rm
2002-04-08 22:59
2002.04.22
Регистрация собственного расширения




   Наверх