Setclipboard и кириллица.

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
VWV
Бывалый
Сообщения: 60
Зарегистрирован: 12 Июнь 2015, 22:59
Откуда: Новороссийск
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Setclipboard и кириллица.

Сообщение VWV »

Вот и я столкнулся с абракадабрами в буфере обмена (Clarion 5.5.ШВС).
Прошу, покажите, как принудительно переключить раскладку из приложения.
Спасибо
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Setclipboard и кириллица.

Сообщение Admin »

Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Setclipboard и кириллица.

Сообщение kreator »

Надеюсь, полный набор.

Код: Выделить всё

LPCSTR                  EQUATE(CSTRING)
LPSTR                   EQUATE(CSTRING)
HKL                     EQUATE(UNSIGNED)
HWND                    EQUATE(UNSIGNED)
HINSTANCE               EQUATE(UNSIGNED)

Latin    CSTRING('00000409')
Russian  CSTRING('00000419')

SwitchKBD(String KBDLayout)
MODULE('WINAPI')
    GetKeyboardLayoutList(SIGNED,*HKL),SIGNED,pascal,raw
    ActivateKeyboardLayout(HKL,UNSIGNED),HKL,pascal
    GetKeyboardLayoutName(*LPSTR),BOOL,pascal,raw,NAME('GetKeyboardLayoutName')
    GetKeyboardLayout(DWORD),HKL,pascal
    GetKeyboardLayoutNameA(*LPSTR),BOOL,pascal,raw
END

SwitchKBD Procedure (KBDLayout)
AKL  HKL
TMP  CSTRING(20)
loc:i Long

 Code
 loc:i = GetKeyboardLayoutNameA(Tmp)
 if Tmp<>KBDLayout
   AKL = ActivateKeyBoardLayout(1,0)
 end
Всё прописывается в Global Embeds. Точки вставки определить просто.

Вызов функции:

Код: Выделить всё

i# = GetKeyboardLayoutNameA(LOC:Language)
if LOC:Language=Latin
  SwitchKBD(Russian)  
end    
SETCLIPBOARD(TEKST)
if LOC:Language=Latin
  SwitchKBD(Latin)  
end
We are hard at work… for you. :)
VWV
Бывалый
Сообщения: 60
Зарегистрирован: 12 Июнь 2015, 22:59
Откуда: Новороссийск
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Setclipboard и кириллица.

Сообщение VWV »

Спасибо большое за помощь!
Ответить