Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
1-12416
Elast
2004-02-24 15:59
2004.03.05
Debug


3-12291
Relaxxx
2004-02-06 19:15
2004.03.05
Как мне в одну ячейку ДБГрид записать несколько строчек...


3-12281
Мыш
2004-02-06 20:41
2004.03.05
удаление? записей из запроса


1-12335
Blackstarsirbis
2004-02-22 16:58
2004.03.05
TeeChart?


7-12540
Japan
2003-12-12 06:34
2004.03.05
Ролик мышки




   Наверх