Страница 1 из 2

Добавлено: 31 Октябрь 2004, 10:15
Гость
На форуме перидически обсуждается проблема переключения
РУС-ЛАТ в ХР.Может мне очень везет,но почему то у меня этой
проблемы не было на XP,XP+SP1,XP+sp2 как на русских версиях,
так и на анлийских с MUI.Платформы CLARION от с5 до с61.Причем
не только на своем компе,но и на компах заказчиков.Один раз была
проблема у заказчика под WIN2000 при переустановке системы,но
его админ сам решил проблему.Так может быть дело не в кларионе,
а каких то нестандарных настройках ХР?

Написал: lsgsoftware(155)

Добавлено: 31 Октябрь 2004, 16:56
Гость
Прблема проявляется только при работе с MDI интерфейсом.

Если Вы используете для своих проектов интерфейс SDI - то
с этой проблемой никогда не столкнетесь (а в C55 еще и с
проблемой переключения потоков).

С уважением, ТАТА

Добавлено: 01 Ноябрь 2004, 10:10
Aragorn
А ещё надо поставить Office - тогда в памяти сядет ctfmon.exe и весь букет удовольствий - на лицо...
Написал: Aragorn(147)

Добавлено: 03 Ноябрь 2004, 16:45
Гость
Дорогая Тата!
Режим MDI я действительно не использую из-за
личных принципиальных соображений.Но чтобы закрыть вопрос
собрал простенький АРР на С61 с MDI-интерфейсом.ОС WINX+SP1+MUI.Установлен MS OFFICE 2003.Как ни странно,но переключение RUS-LAT работает нормально.Так что может быть
все таки дело не в Clarion?

Добавлено: 03 Ноябрь 2004, 16:52
Aragorn
Я, конечно, дико извиняюсь за то, что опять влезаю в ваш диалог... а какой комбинацией клавиш вы пользуетесь для переключения?
Написал: Aragorn(147)

Добавлено: 03 Ноябрь 2004, 18:23
Гость
Переключение Лев.Alt_Пр.Shift-стандарт,а также мышью по
языковой панели,что зачастую удобнее!

Добавлено: 03 Ноябрь 2004, 18:46
Гость
Влазьте. На то и форум ... ;)
Чем больше будут "влазить" - тем быстрее "вылезем" ... ;)

А сделайте пожалуйста простой эксперимент на Вашем чудо-компьютере.
- Запустите, что нибудь из MS Office 2003 - например Word;
- Вызовите помощника (Справка -> Показать помощника)
- Щелкните по нему мышкой - откроется желтое окно для запроса
- В нем у Вас тоже нормально с клавиатуры переключается раскладка ?

Спасибо за информацию.

P/S: Если бы всем было бы удобней переключать "мышью по панели" - тогда бы точно проблемы не было ... ;)

C уважением, ТАТА

Добавлено: 04 Ноябрь 2004, 13:03
Гость
из этого следует - помошник написан на кларионе! ;)
Написал: vad7(154)

Добавлено: 04 Ноябрь 2004, 13:46
Гость
Из этого следует - что в WinXP есть проблемы с переключением
раскладки клавиатуры не зависящие от Clarion и программ на нем
написанных.
Пример с Word не единственный, но наиболее наглядный.
Проявляется сия проблема при т.н. текстовом вводе -
которые используется в приложениях собранных на Clarion ... :(

TATA

Добавлено: 25 Ноябрь 2004, 13:42
Гость
Господа ! Я прошу прощения но!
Установка Пунто http://WWW.PUNTO.RU Решает эту проблемку
С ХР:)

Добавлено: 25 Ноябрь 2004, 17:43
Гость
Безусловно решает (если отключить дополнительные текстовые службы).
Правда появляются другие - не переключается раскладка на рабочем
столе Windows (XP SP2), но это уже мелочи ...

Разговор был о другом - как решить проблему из Clarion-программ.

ТАТА

Добавлено: 15 Декабрь 2004, 9:54
Гость
Так все же? Есть решение по переключению раскладки в XP из Клариона?
Написал: Vasiliy(173)

Добавлено: 15 Декабрь 2004, 12:46
Гость
Привет!
Я переключал язык из Клариона с помощью API-функций.
Посмотри пример - вдруг чем-либо поможет.

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

      Program

   INCLUDE('EQUATES.CLW')
   INCLUDE('ERRORS.CLW')
   INCLUDE('KEYCODES.CLW')

Latin    CSTRING('00000409')
Russian  CSTRING('00000419')
Ukraine  CSTRING('00000422')
CurL     string(2)

   MAP
     SwitchKBD(String KBDLayout)
     MODULE('Windows.lib')
      GetKBDLName(*CSTRING),BOOL,PASCAL,RAW,!
                            NAME('GetKeyboardLayoutNameA')
      ActivateKBDL(ULONG,UNSIGNED),ULONG,PASCAL,!
                            NAME('ActivateKeyboardLayout')
     END
   END

LID     cstring(10)
TmpStr  string(50)

Window WINDOW('Тест переключени<255> <255>зыка'),AT(,,185,92), !
                                FONT('MS Sans Serif',8,,FONT:regular),GRAY
       STRING('ID <255>зыка:'),AT(13,11),USE(?String1)
       STRING(@s10),AT(52,11),USE(LID)
       PANEL,AT(94,11,17,11),USE(?Panel1),BEVEL(-1)
       STRING(@s2),AT(95,11,14,10),USE(CurL),CENTER,!
                            FONT(,,COLOR:White,),COLOR(0A00000H)
       ENTRY(@s50),AT(22,38,112,10),USE(TmpStr)
       BUTTON('Язык'),AT(37,71,35,14),USE(?OkButton),DEFAULT
       BUTTON('Cancel'),AT(82,71,36,14),USE(?CancelButton),!
                    STD(STD:Close)
     END

    code
    DO GetKBDL
    open(Window)
    accept
      case accepted()
      of ?OkButton
        Q# = ActivateKBDL(1,0)
        DO GetKBDL
        display(?LID);display(?CurL)
        select(?TmpStr)
        presskey(RightKey)
      end ! case
    end !accept
GetKBDL  ROUTINE
    R# = GetKBDLName(LID)
    case LID
      of Latin   ; CurL = 'En'
      of Russian ; CurL = 'Ru'
      of Ukraine ; CurL = 'Uk'
    else
      CurL = '**'
    end

SwitchKBD Procedure (KBDLayout)
AKL  ULONG
TMP  CSTRING(20)
loc:i Long
 Code
 loc:i = GetKBDLName(Tmp)
 if Tmp<>KBDLayout
   AKL = ActivateKBDL(1,0)
 end
С уважением,
Mit

Добавлено: 15 Декабрь 2004, 17:34
Aragorn
Пардон, но это код типа "Вот ща мы тут нажмём мышкой на эту пимпочку (кнопочку), и у нас переключится раскладка!!!"
А это СОВСЕМ НЕ ТО ЧТО НУЖНО!!!
Нужно, чтобы раскладка по-нормальному переключалась по Ctrl+Shift или Alt+Shift!!!
А то, что предложено, и так ясно, как забацать.
Написал: Aragorn(147)

Добавлено: 16 Декабрь 2004, 6:04
Гость
Действительно все работает, только глобально для всей программы переключение раскладки определить не удалось. Даже прописав клавиши по умолчанию и спрятав кнопку. Срабатывает только для главного окна, а в каждой форме приходиться прописывать заново. Что не есть удобно :(
Написал: Vasiliy(173)