Перейти к содержанию

Свое контекстное меню в списке адресов (CE 6.2 и выше)


Рекомендуемые сообщения

Добавление новой функции MenuItem в контекстное меню как на скрине ниже

post-3-0-79379900-1369476790_thumb.png

Выводит результат:

Ammo : 0x0045B5A4

* Похожая тема для меню дизассемблера.

+ показано как извлечь информацию из выделенной записи

О том как это было сделано

Сначала в голову пришла идея сделать окно анализа брейкпоинтов, а для этого надо добавить функцию в контекстное меню для установки своего бряка. Через несколько неудачных попыток реализовать это (без Lazarus и сорцев CE под рукой было особенно сложно) все-таки решение найдено. Но чтобы не усложнять пример отладочными функциями Lua я просто извлекаю описание записи и адрес. Заметьте, что здесь нет проверки есть адрес здесь или нет. Смотрите код, посмотрите результат и смотрите конечно main.lua. Желаю удачи.


function OnGetSelectAddress()
local al = getAddressList()
local mr = addresslist_getSelectedRecord(al)
local address = memoryrecord_getAddress(mr)
local description = memoryrecord_getDescription(mr)
local strHexAddress = string.format("0x%08X", address)
print(description.. ' : '..strHexAddress)
end
local al = getAddressList()
local view = component_getComponent(al,0)
local popupmenu = control_getPopupMenu(view)
mi = createMenuItem(popupmenu)
menuItem_setCaption(mi, 'Get Info SelectAddress')
menuItem_onClick(mi, OnGetSelectAddress)
--menuItem_setShortcut(mi, 'Ctrl+Shift+T');
menuItem_add(menu_getItems(popupmenu), mi)

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.