Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Вниз

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


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_
Ну ты силееееен ! ;-)

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




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.017 c
1-69872           Andre V.              2002-04-08 10:24  2002.04.22  
Создание своих VCL


1-69770           Джафар                2002-04-10 08:41  2002.04.22  
Как подключитькомпонент ?


1-69817           oomneeq               2002-04-10 14:53  2002.04.22  
отладка DLL


6-69947           hair_fly              2002-02-11 12:55  2002.04.22  
Подскажите, плз, сколько портов приемлемо использовать в одной проге ?


3-69709           Катерина              2002-03-30 11:31  2002.04.22  
Таблицы