Страница 1 из 1
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 10:44
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)?
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 10:56
Игорь Столяров
Привет !
Если "нисподающее меню" - это контекстное меню на 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')
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 11:11
NewUser
Спасибо, Игорь, за быстрый ответ!
Все получилось. Но тогда у меня вопрос. Почему название горячей клавиши (Del) в третьей строке, в отличии от двух предыдущих верхних строк, не сместилось на такую же величину вправо? Может из-за наличия вслед идущей разделительной линии?

- PopUp.jpg.jpg (6.69 КБ) 3174 просмотра
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 11:44
NewUser
Разделительная линия оказалась здесь не причем, а проблема разрешилась добавлением еще одного знака табуляции <9>. Хотя причина так и осталась не выясненной. Наверное она исходит из-за длины русских названий этих пунктов меню. Слово Удалить (7) короче слов Добавить и Изменить (8).
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 12:09
Игорь Столяров
NewUser писал(а): а проблема разрешилась добавлением еще одного знака табуляции <9>.
Бесполезно, это известный косяк RTL С63. Не лечится.
Все равно под другой темой оформления, системным шрифтом, Windows и т.д. будет смещаться.
Тот же самый код в сборке под C10 работает идеально:
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 12:51
kreator
Наличие в тексте пункта меню символа табулирования должно провоцировать выравнивание части строки после символа табулирования по правому краю. Не дело выравнивать разным количеством табов. И в С10 это реализовано правильно. С некоторых пор

.
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 14:31
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('я')
и всё будет

...
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 15:10
NewUser
Спасибо всем откликнувшимся участникам!
И спасибо Юрию за освещение лежащих в дальнем углу граблей, наступить на которые совсем не хотелось бы!
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 16:11
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('я')
и всё будет

...
Да это перестраховка, eсли вызывать метод AddItem вот так:
Где и кто так делает?
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 16:58
Yufil
Ну да, возможно... Но у меня и самый обычный Browse глючил (кажется, если прятал кнопку, но могу и ошибаться), иначе нафиг бы я эту правку вноcил много-много лет назад. Кстати, эта тема уже обсуждалась, можно поиском на форуме по abpopup найти
Как исправить на русские надписи в PopUp меню
Добавлено: 13 Январь 2017, 21:04
kreator
Yufil писал(а):Ну да, возможно... Но у меня и самый обычный Browse глючил (кажется, если прятал кнопку, но могу и ошибаться), иначе нафиг бы я эту правку вноcил много-много лет назад. Кстати, эта тема уже обсуждалась, можно поиском на форуме по abpopup найти
Теоретически возможно. Нужно перелопатить классы и шаблоны. А что качается формирования меню для броуза, то там используется метод AddMimicButton, в котором нет вызова проблемного метода. Могу ошибаться, конечно.