powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Изменение текста в меню...
10 сообщений из 10, страница 1 из 1
Изменение текста в меню...
    #32266010
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При изменении названий пунктов меню из скрипта (в рантайм) - пропадают шоткаты :((( Кто знает, как с этим зверем бороться? Ну чтоб не пропадали.

С Уважением...
...
Рейтинг: 0 / 0
Изменение текста в меню...
    #32266743
Sergey Schwarz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извини за офтоп, но как ето вообше делается->добавить или изменить пункт в меню в реалтаим.

Можно пример4ик посмотреть?
...
Рейтинг: 0 / 0
Изменение текста в меню...
    #32266749
Moiseeff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Изменение текста в меню...
    #32266789
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя вот по этому кусочку из файла экспорта
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
...
on m_add.create
call super::create
this.text =  "Добавить~tIns" 
this.shortcut =  45 
this.toolbaritemname =  "Insert5!" 
this.toolbaritemtext =  "Добавить " 
end on
...

шорткат присутствует в тексте пункта меню...
...
Рейтинг: 0 / 0
Изменение текста в меню...
    #32267128
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри вот тут
http://www.pbinfo.be/index.php?file=tips&seq=11

Он на меня не ссылается, но списал с моего поста в powersoft.public.powerbuilder.general :-))
...
Рейтинг: 0 / 0
Изменение текста в меню...
    #32267253
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кусок описания Menu Object
Shortcut Integer Specifies the shortcut key for the Menu object. This property should only be set in the Menu painter. It cannot be set at runtime.

Посему Филипп , спасибо, но енто не подходит :((.
...
Рейтинг: 0 / 0
Изменение текста в меню...
    #32267293
Фотография DenisVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не ясно, если ты создаешь меню динамически, то можешь назначить сам shortcut. А вообще напиши кусок своего скрипта, чтоб людям было ясно в чем все-таки проблема...
...
Рейтинг: 0 / 0
Изменение текста в меню...
    #32267357
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меню динамически не генерю, а изменяю, вещи разные. Насколько знаю, штатными средствами PB - его динамически создавать нельзя без извращений... Да мне и не требуется пока. Вот ф-ия, которая с меню работает... Почему нельзя шоткаты менять - смотри на мессадж выше :))

global function integer show_menu (menu m, string as_name, string as_title);int i, sh
string item_id
for i = lowerBound(m.Item) to upperBound(m.Item)
item_id = m.Item.classname()
if item_id = as_name then
// sh = m.item.ShortCut
m.item.Visible = true
m.item.Enabled = true
m.item.Text = as_title
m.item.ToolbarItemVisible = true
m.item.ToolbarItemText = as_title
// m.item.ShortCut = sh
return 1
end if
if show_menu(m.Item, as_name, as_title) = 1 then return 1
next
return 0
end function
...
Рейтинг: 0 / 0
Изменение текста в меню...
    #32267440
Фотография DenisVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну во-первых скриптик не совсем корректный (в части обращения к элементам меню), во-вторых судя по скрипту shortcut никуда не пропадает...
А если ты хочешь, чтобы они отображались в названии пункта меню, тогда смотри, что написал PL99
this.text = "Добавить~tIns"
...
Рейтинг: 0 / 0
Изменение текста в меню...
    #32267447
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот окончательный вариант, кому интересно... все работает, особое спасибо PL99 & Филиппу.

global function integer show_menu (menu m, string as_name, string as_title);int i, sh
string item_id, ls_sh
boolean lb_shift, lb_alt, lb_ctrl
for i = lowerBound(m.Item) to upperBound(m.Item)
item_id = m.Item.classname()
if item_id = as_name then
// define ShortCut
sh = m.item.ShortCut
if null2long(sh) > 0 then
ls_sh = "~t"
if sh >= 1024 then
ls_sh += "Shift+"
sh -= 1024
end if
if sh >= 512 then
ls_sh += "Alt+"
sh -= 512
end if
if sh >= 256 then
ls_sh += "Ctrl+"
sh -= 256
end if
ls_sh += String(Char(sh))
else
ls_sh = ""
end if
// change status & text
m.item.Visible = true
m.item.Enabled = true
m.item.Text = as_title + ls_sh
m.item.ToolbarItemVisible = true
m.item.ToolbarItemText = as_title
Print(as_title + ls_sh)
// m.item.ShortCut = sh
return 1
end if
if show_menu(m.Item, as_name, as_title) = 1 then return 1
next
return 0
end function
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Изменение текста в меню...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]