Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.22;
Скачать: 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 вся ветка

Текущий архив: 2002.04.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-69851
heruvim4ik
2002-04-08 20:52
2002.04.22
Разноцветный текст вили TRichEdit ещё гденть.


7-70050
AntBofh
2002-01-23 22:09
2002.04.22
COM порт ... и мой ... Модем


1-69902
wHammer
2002-04-09 13:56
2002.04.22
TAB


14-70021
KvORubin
2002-03-17 18:24
2002.04.22
RichEdit - как в нём отобразить непечатаемые символы (как в M.Office)


3-69710
sergiocho
2002-03-31 16:44
2002.04.22
Ограничение размера талблицы Paradox