Форум: "Основная";
Текущий архив: 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_
Ну ты силееееен ! ;-)
Мой сорец-то смотрел ? ;-)))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c