Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.05;
Скачать: CL | DM;

Вниз

Отображение переключения раскладки клавиатуры   Найти похожие ветки 

 
FREEMAN ©   (2004-02-24 16:12) [0]

Добрый день!!! Помогите!!! Как можно отобразить переключение
языка RU/EN у своего приложения в ststusbar"e?
Заранее благодарен.


 
Anatoly Podgoretsky ©   (2004-02-24 16:13) [1]

С помощью TLabel, свойство Caption


 
FREEMAN ©   (2004-02-24 16:24) [2]

Мне нужно узнать какая сейчас стоит раскладка, а при ее изменении изменить информацию о ней в статусбаре(как это сделано в офисе)


 
МАКСЮХА ©   (2004-02-24 16:24) [3]


> Anatoly Podgoretsky © (24.02.04 16:13) [1]

Товарищ, простите за идиотский вопрос :) но как узнать, что именно писать в "TLabel, свойство Caption", RU или EN?


 
FREEMAN ©   (2004-02-24 16:27) [4]

Ну наверное узнать можно так GetLayotkeyboard или что то в этом роде, но как сделать что бы при изменении языка Caption тоже менялся.


 
Hooch ©   (2004-02-24 16:30) [5]

если не ошибаюсь, ловить WM_INPUTLANGCHANGE


 
FREEMAN ©   (2004-02-24 16:31) [6]

А вот с этого момента можно поподробнее с картинками, плиз


 
Anatoly Podgoretsky ©   (2004-02-24 16:39) [7]

http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N127


 
Игорь Шевченко ©   (2004-02-24 16:40) [8]

http://www.schevchenko.net.ru/SRC/EnumFunctions_60.zip


 
Serge ©   (2004-02-24 18:07) [9]

[5] + WM_INPUTLANGCHANGEREQUEST+Ловушки (о которых почитай в статьях "Hooks" - аспекты реализации. by Aleksey Pavlov (C))

Приведенной ниже процедурой я добавлял в меню список установленных раскладок (не только RU,EN!)

Procedure TForm1.GetKbdLayouts;
Var TM: TMenuItem;
s, SS: String;
BMP: TBitmap;
R_: TRect;
LayoutName: Array[0..KL_NAMELENGTH] Of Char;
LangName: Array[0..63] Of Char;
hImeList: Array[0..19] Of HKL;
cnt, i: byte;
lf: TLogFont;
Begin
cnt := GetKeyBoardLayoutList(20, hImeList);
For i := 0 To cnt - 1 Do
Begin
// ActivateKeyBoardLayout(hImeList[i], 0);
// GetKeyboardLayoutName(@LayoutName);
ss := IntToHex(LoWord(hImeList[i]), 8);
// ss := LayoutName;
FillChar(LangName, SizeOf(LangName), #0);
GetLocaleInfo(StrToInt("$" + ss), LOCALE_SLANGUAGE Or LOCALE_NOUSEROVERRIDE, @LangName, SizeOf(LangName));
TM := TMenuItem.Create(Self);
TM.OnDrawItem := Form1.aDrawItem;
TM.OnMeasureItem := Form1.MeasureItem;
TM.OnClick := Form1.CheckLanguage;
TM.RadioItem := True;
TM.Hint := IntToStr(LangNumber);
TM.Caption := LangName;
TM.Tag := hImeList[i];
ss := "";
ss := TM.Caption;
delete(ss, 3, length(ss));
BMP := TBitmap.Create;
BMP.Width := 16; BMP.Height := 16;
R_ := Rect(0, 0, 16, 16);
With BMP.Canvas Do
Begin
SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), @lf, 0);
Brush.Color := GetSysColor(COLOR_HIGHLIGHT); //clred; //$000080FF;
FillRect(R_);
Font.Color := GetSysColor(COLOR_HIGHLIGHTTEXT); //clwhite;
font.size := 7;
drawtext(handle, pchar(ss), length(ss), R_, DT_SINGLELINE + DT_VCENTER + DT_CENTER);
End;
TM.Bitmap := BMP;
Bitmap2IconH(bmp, clblack, ico16, Ic);
IconList.AddIcon(Ic);
PopUpMenu2.Items.Insert(LangNumber, TM);
Inc(LangNumber);
End;
End;



 
savva ©   (2004-02-24 18:10) [10]

ну и я внесу свою лепту:)
http://delphibase.endimus.com/?action=viewfunc&topic=sysparams&id=10256



Страницы: 1 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.017 c
3-12298
diwin
2004-02-10 00:11
2004.03.05
как программно получить перечень таблиц?


3-12293
Fom
2004-02-06 12:43
2004.03.05
Установка FireBird под Linux


1-12414
Developerr
2004-02-24 16:43
2004.03.05
Как вытащить иконку с exe-файла?


1-12369
s_ser
2004-02-25 11:47
2004.03.05
Тип данных TDateTime


8-12452
Meronikol
2003-11-02 05:37
2004.03.05
Помогите решить проблему