Вверх ↑
Этот топик читают: Гость
Ответов: 1931
Рейтинг: 174
#1: 2025-04-02 21:16:55 ЛС | профиль | цитата

Допустим, мне частенько нужно бывает открыть share.pas или win.pas (при работе с визуальными), чтобы долго не искать эти файлы, я решил вывести кнопки для их открытия на панель hiasm. Сейчас объясню как.

Заходим Сервис - Редактор команд - Добавить команду (кнопка с плюсиком внизу). Имя команды пишем латиницей и только буквы (например, у меня sharepas), описание - это название команды, можно писать хоть что. Ок.

Слева в списке команд найдите свою команду и выведите её куда хотите - например, в меню панели управления.
Далее, идём в папку \Int\icons и создаём там иконку 16х16 с тем же названием, что и имя команды. Это обязательно, иначе команда работать не будет. Иконку можно создать в любом редакторе иконок.

В папке \Int\plugs нужно создать плагин hiasm. Можно скопировать один из имеющихся там файлов, всё удалить и вставить следующий код:
Add(hiPlugs,2953706,336,315)
{
Point(onCmdCompleting)
Point(onCmdEnabled)
Point(doCmdEnabled)
Point(onInit)
Point(doCmdUpdate)
link(onCommand,16630206:doGetIndex,[(401,321)(401,293)])
link(onCmdEnabled,4152254:doEnum,[])
}
Add(StrList,16630206,434,245)
{
Strings=#8:shatempl|8:sharepas|6:winpas|10:imgdrawpas|6:kolpas|
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,14562325:doEvent,[])
}
Add(ArrayEnum,4152254,448,336)
{
link(onItem,3268805:In,[])
link(Array,16630206:Array,[])
}
Add(LineBreak,11408625,294,329)
{
link(Out,2953706:doCmdEnabled,[])
Primary=[3268805,196,7]
}
Add(Dir,3785998,602,133)
{
}
Add(WinExec,10967941,644,189)
{
}
Add(StrCat,9078764,602,196)
{
Str2="\sha.lnk"
link(onStrCat,10967941:doShellExec,[])
link(Str1,12149952:Var2,[])
}
Add(IndexToChanel,14562325,490,252)
{
Count=5
link(onEvent1,9078764:doStrCat,[(562,258)(562,202)])
link(onEvent2,5479440:doString,[])
link(onEvent3,1491920:doString,[(555,272)(555,307)])
link(onEvent4,5075204:doString,[(552,279)(552,349)])
link(onEvent5,1802256:doStrCat,[(548,286)(548,454)])
}
Add(WinExec,15806763,707,259)
{
link(FileName,2950795:GetData,[])
}
Add(GetDataEx,12149952,602,175)
{
link(Data,3785998:CurrentDir,[])
}
Add(EventFromData,2950795,707,203)
{
link(onEvent,11364995:doStrCat,[])
}
Add(StrCat,11364995,749,203)
{
Str2="\HiAsm.exe"
link(onStrCat,2950795:doData,[(793,209)(793,197)(695,197)(695,209)])
link(Str1,12149952:Var3,[(755,180)])
}
Add(HubEx,2932557,651,259)
{
link(onEvent,15806763:doExec,[])
}
Add(HubEx,1452067,651,301)
{
Angle=3
link(onEvent,2932557:doWork3,[])
}
Add(FormatStr,5479440,595,259)
{
DataCount=1
Mask=""%1\Elements\\delphi\\code\\Share.pas""
link(onFString,2932557:doWork2,[])
link(Str1,13968204:Var2,[])
}
Add(FormatStr,1491920,588,301)
{
DataCount=1
Mask=""%1\Elements\\delphi\\code\\Win.pas""
link(onFString,1452067:doWork2,[])
link(Str1,5128199:Var2,[])
}
Add(FormatStr,5075204,581,343)
{
DataCount=1
Mask=""%1\Elements\\delphi\\code\\Img_Draw.pas""
link(onFString,1452067:doWork3,[(655,349)])
link(Str1,5128199:Var1,[(587,180)])
}
Add(GetDataEx,13968204,595,175)
{
Angle=1
link(Data,12149952:Var1,[])
}
Add(GetDataEx,5128199,588,175)
{
Angle=1
link(Data,13968204:Var1,[])
}
Add(Dir,9979471,574,399)
{
}
Add(WinExec,16074479,616,441)
{
}
Add(StrCat,1802256,574,448)
{
Str2="\\compiler\\Delphi\\Kol.PAS (только для справки).pas"
link(onStrCat,16074479:doShellExec,[])
link(Str1,9979471:CurrentDir,[])
}
Компилируем плагин и перезапускаем HiAsm.

Т.е. сначала мы делаем команды доступными, а потом ловим их вызов. В моём случае первый файл - это мой справочный sha, остальные - pas-файлы, открываться будут в hiasm. Но вы можете настроить в этом коде открытие их в любой другой программе.

ps. Если ошиблись при добавлении команды - её легко поправить в файле \Int\hiasm.db.

Редактировалось 2 раз(а), последний 2025-04-02 21:50:19
карма: 9
0
1
Сообщение
...
Прикрепленные файлы
(файлы не залиты)