Главная страница
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.01 c
6-69958
ctapik-net
2002-01-18 06:52
2002.04.22
Как зная IP адрес компа в сети получить его имя?


7-70036
__Dima
2001-10-24 12:30
2002.04.22
Защита программы


3-69712
Timka
2002-03-26 18:54
2002.04.22
Помогите серенькому!!!


1-69826
DeMoN-777
2002-04-09 19:04
2002.04.22
Поиск в ListBox


1-69901
d_oleg
2002-04-09 11:44
2002.04.22
передача объектов из dll в вызыващщее приложение