Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-70062
Eraser
2002-02-18 13:44
2002.04.22
О CreateFile в win2k


14-69981
Philipps
2002-03-14 09:40
2002.04.22
Как сделать proxy сервер на делфи?


3-69748
AndreyP
2002-04-02 14:38
2002.04.22
Добавление вычисляемого поля


14-69993
Knight
2002-03-14 19:12
2002.04.22
логика не фурычит...черта Шеффера


1-69830
kopachev
2002-04-09 10:59
2002.04.22
Про StringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский