Как исправить на русские надписи в PopUp меню

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
NewUser
Старожил
Сообщения: 238
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 6 раз

Как исправить на русские надписи в PopUp меню

Сообщение NewUser »

Здравствуйте!
CW6.3, ABC
Исходные данные: стандартные Browse, кнопки шаблона редактирования ?Insert, ?Change, ?Delete без названия, с иконками.
Получаю: в ниспадающем меню соответствующие пункты меню в виде иконок кнопок и их наименование на английском: Insert, Change, Delete.
Хочу: заменить английские надписи на русские.
Как это сделать?
Может с помощью SetItem? Тогда как правильно задать первые два параметра в SELF.SetItem(SELF.LocateName(NameToFollow),Level,Name,MenuText) (UNSIGNED AddAfter,UNSIGNED Level,STRING BaseName,STRING MenuText)?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8029
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Как исправить на русские надписи в PopUp меню

Сообщение Игорь Столяров »

Привет !

Если "нисподающее меню" - это контекстное меню на BROWSE, то можно сделать вот так:

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

  ....
  ! Prepare Alert Keys
  SELF.SetAlerts()
   
  ! Вот здесь вставляем русификацию кнопок шаблона
  BRW1.Popup.SetText('Insert','Добавить<9>Ins')
  BRW1.Popup.SetText('Change','Изменить<9>Ctrl+Enter')
  BRW1.Popup.SetText('Delete','Удалить<9>Del')
Make Clarion Great Again ! 😎
NewUser
Старожил
Сообщения: 238
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 6 раз

Как исправить на русские надписи в PopUp меню

Сообщение NewUser »

Спасибо, Игорь, за быстрый ответ!
Все получилось. Но тогда у меня вопрос. Почему название горячей клавиши (Del) в третьей строке, в отличии от двух предыдущих верхних строк, не сместилось на такую же величину вправо? Может из-за наличия вслед идущей разделительной линии?
PopUp.jpg.jpg
PopUp.jpg.jpg (6.69 КБ) 3172 просмотра
NewUser
Старожил
Сообщения: 238
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 6 раз

Как исправить на русские надписи в PopUp меню

Сообщение NewUser »

Разделительная линия оказалась здесь не причем, а проблема разрешилась добавлением еще одного знака табуляции <9>. Хотя причина так и осталась не выясненной. Наверное она исходит из-за длины русских названий этих пунктов меню. Слово Удалить (7) короче слов Добавить и Изменить (8).
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8029
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Как исправить на русские надписи в PopUp меню

Сообщение Игорь Столяров »

NewUser писал(а): а проблема разрешилась добавлением еще одного знака табуляции <9>.
Бесполезно, это известный косяк RTL С63. Не лечится.
Все равно под другой темой оформления, системным шрифтом, Windows и т.д. будет смещаться.
Тот же самый код в сборке под C10 работает идеально:
PopUp10.jpg
Make Clarion Great Again ! 😎
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как исправить на русские надписи в PopUp меню

Сообщение kreator »

Наличие в тексте пункта меню символа табулирования должно провоцировать выравнивание части строки после символа табулирования по правому краю. Не дело выравнивать разным количеством табов. И в С10 это реализовано правильно. С некоторых пор :mrgreen: .
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Как исправить на русские надписи в PopUp меню

Сообщение Yufil »

Там есть ещё одна проблема. В ряде случаев происходит переход не на тот пункт меню
В Browse это не видно, потому что слова Добавить, Изменить, Удалить расположены по алфавиту, а вот если надписи на кнопках не по алфавиту - может и взглюкнуть :(

Надо в abpopup.clw найти метод GetUniqueName, а там (строка примерно 674)

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

      CASE VAL (ThisItem[C])
      OF VAL('A') TO VAL('Z')
      OROF VAL('a') TO VAL('z')

И добавить пару строк

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

 
      OROF VAL('А') TO VAL('Я')   
      OROF VAL('а') TO VAL('я')   
и всё будет :P ...
NewUser
Старожил
Сообщения: 238
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 6 раз

Как исправить на русские надписи в PopUp меню

Сообщение NewUser »

Спасибо всем откликнувшимся участникам!
И спасибо Юрию за освещение лежащих в дальнем углу граблей, наступить на которые совсем не хотелось бы!
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как исправить на русские надписи в PopUp меню

Сообщение kreator »

Yufil писал(а):Там есть ещё одна проблема. В ряде случаев происходит переход не на тот пункт меню
В Browse это не видно, потому что слова Добавить, Изменить, Удалить расположены по алфавиту, а вот если надписи на кнопках не по алфавиту - может и взглюкнуть :(

Надо в abpopup.clw найти метод GetUniqueName, а там (строка примерно 674)

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

      CASE VAL (ThisItem[C])
      OF VAL('A') TO VAL('Z')
      OROF VAL('a') TO VAL('z')

И добавить пару строк

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

 
      OROF VAL('А') TO VAL('Я')   
      OROF VAL('а') TO VAL('я')   
и всё будет :P ...
Да это перестраховка, eсли вызывать метод AddItem вот так:

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

	BRW1.Popup.AddItem('Добавить')
Где и кто так делает?
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Как исправить на русские надписи в PopUp меню

Сообщение Yufil »

Ну да, возможно... Но у меня и самый обычный Browse глючил (кажется, если прятал кнопку, но могу и ошибаться), иначе нафиг бы я эту правку вноcил много-много лет назад. Кстати, эта тема уже обсуждалась, можно поиском на форуме по abpopup найти
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как исправить на русские надписи в PopUp меню

Сообщение kreator »

Yufil писал(а):Ну да, возможно... Но у меня и самый обычный Browse глючил (кажется, если прятал кнопку, но могу и ошибаться), иначе нафиг бы я эту правку вноcил много-много лет назад. Кстати, эта тема уже обсуждалась, можно поиском на форуме по abpopup найти
Теоретически возможно. Нужно перелопатить классы и шаблоны. А что качается формирования меню для броуза, то там используется метод AddMimicButton, в котором нет вызова проблемного метода. Могу ошибаться, конечно.
We are hard at work… for you. :)
Ответить