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

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

Можно пример4ик посмотреть?
...
Рейтинг: 0 / 0
16.09.2003, 16:09
    #32266749
Moiseeff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение текста в меню...
...
Рейтинг: 0 / 0
16.09.2003, 16:28
    #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
17.09.2003, 00:58
    #32267128
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение текста в меню...
Посмотри вот тут
http://www.pbinfo.be/index.php?file=tips&seq=11

Он на меня не ссылается, но списал с моего поста в powersoft.public.powerbuilder.general :-))
...
Рейтинг: 0 / 0
17.09.2003, 09:54
    #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
17.09.2003, 10:19
    #32267293
DenisVK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение текста в меню...
Что-то не ясно, если ты создаешь меню динамически, то можешь назначить сам shortcut. А вообще напиши кусок своего скрипта, чтоб людям было ясно в чем все-таки проблема...
...
Рейтинг: 0 / 0
17.09.2003, 10:51
    #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
17.09.2003, 11:35
    #32267440
DenisVK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение текста в меню...
Ну во-первых скриптик не совсем корректный (в части обращения к элементам меню), во-вторых судя по скрипту shortcut никуда не пропадает...
А если ты хочешь, чтобы они отображались в названии пункта меню, тогда смотри, что написал PL99
this.text = "Добавить~tIns"
...
Рейтинг: 0 / 0
17.09.2003, 11:39
    #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
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Изменение текста в меню... / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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