- Код: Выделить всё
{IFDEF Win32} ActivateKeyboardLayout($409, 0) {ENDIF}
но это только при использовании модуля Windows само собой, как бы использовать это при компиляции под Linux ?
Модератор: Модераторы
{IFDEF Win32} ActivateKeyboardLayout($409, 0) {ENDIF}
setxkbmap -layout ru
setxkbmap -layout us
Ism писал(а):Где вы видели добрых пользователей
Brainenjii писал(а):Может обрабатывать OnUTF8KeyPress и подменять символы с русских на соответствующие латинские?
extern struct _window *main_window;
int get_curr_keyboard_group(void)
{
XkbStateRec xkbState;
XkbGetState(main_window->display, XkbUseCoreKbd, &xkbState);
int group = xkbState.group;
//XFree(xkbState);
return group;
}
void set_next_keyboard_group(struct _xneur_handle *handle)
{
int new_layout_group = get_curr_keyboard_group() + 1;
if (new_layout_group == handle->total_languages)
new_layout_group = 0;
XkbLockGroup(main_window->display, XkbUseCoreKbd, new_layout_group);
}
void set_prev_keyboard_group(struct _xneur_handle *handle)
{
int new_layout_group = get_curr_keyboard_group() - 1;
if (new_layout_group < 0)
new_layout_group = handle->total_languages - 1;
XkbLockGroup(main_window->display, XkbUseCoreKbd, new_layout_group);
}
procedure TForm1.Button1Click(Sender: TObject);
var
myproc: TProcess;
begin
myproc := TProcess.Create(nil);
myproc.CommandLine := 'setxkbmap -layout ''ru,us'' -option ''grp:alt_shift_toggle''';
myproc.Options := myproc.Options + [poWaitOnExit];
myproc.Execute;
myproc.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
myproc: TProcess;
begin
myproc := TProcess.Create(nil);
myproc.CommandLine := 'setxkbmap -layout ''us,ru'' -option ''grp:alt_shift_toggle''';
myproc.Options := myproc.Options + [poWaitOnExit];
myproc.Execute;
myproc.Free;
end;
Сейчас этот форум просматривают: Yandex [Bot] и гости: 223