B4rr4cuda писал(а):Например, одинаковых команд с разными параметрами на разные хоткеи. Неюзабельно.
не понял, или понял. =) но его выкидывать не надо он удобен, а для параметизированых акшенов надо другой тип придумать.
B4rr4cuda писал(а):Распиши плиз, как ты это себе представляешь (хоткейные плагины).
думаю что это не хоткейный плагин а контекстный, то есть он может попасть как в главное меню так и в меню на правую кнопу, соответсвенно ему можно будет назнчить хоткей
сам плагин должен давать возможность выдать где он хочет находится (хотя при настраиваемом меню на это можно будет забить) и действие аля как сделанно в ИБэксперте
- Код: Выделить всё
Should contain list of integers delimited with colon,
semicolon or space.
Possible values are:
1 - Adds plugin menu items to the end of Main Menu | Databases
2 - Adds plugin menu items to the end of Main Menu | Edit
3 - Adds plugin menu items to the end of Main Menu | View
4 - Adds plugin menu items to the end of Main Menu | Options
5 - Adds plugin menu items to the end of Main Menu | Tools
6 - Adds plugin menu items to the end of Main Menu | Services
7 - Adds plugin menu items to the end of Main Menu | Plugins
8 - Adds plugin menu items to the end of Main Menu | Windows
9 - Adds plugin menu items to the end of Main Menu | Help
11 - Adds plugin menu items to the end of popup menu of code editors
To place plugin menu directly into main menu use negative
integer values or 0. For example, -1 places plugin menu
into main menu just after Database item. 0 places plugin
menu as first item of main menu etc.
*****************
MenuStructure - defines structure of the plugin menu.
Each line describes only one menu item.
Definition of menu item should contain one or more parts
delimited with '|'. The first symbol of each part is control
symbol:
C - caption of menu item
E - procedure associated with menu item (must be listed also
in an exports clause of your dll)
B - inserts a separator before this menu item
S - shortcut
I - image index
U - update procedure. Used to disable/enable menu item. Must
be listed also in an exports clause of your dll
Please, see also source of plugins to get examples of menu
structures.
- Код: Выделить всё
library Test;
uses
SysUtils,
Classes,
IBEIntfEx,
Forms,
Windows,
Dialogs,
PluginF in 'PluginF.pas' {DBInfoForm},
TableInfoF in 'TableInfoF.pas' {TableInfoForm};
{$R *.RES}
procedure CreatePluginForm(Intf : TIBEInterfaceEx);
begin
end;
procedure get_db_info(Intf : TIBEInterfaceEx); stdcall;
begin
OldHandle := Application.Handle;
ShowDatabaseInfo(Intf);
end;
procedure get_table_info(Intf : TIBEInterfaceEx); stdcall;
begin
OldHandle := Application.Handle;
ShowTableInfo(Intf);
end;
procedure get_view_info(Intf : TIBEInterfaceEx); stdcall;
begin
ShowMessage('Not realized yet.');
end;
procedure get_plugin_info_ex(Intf: TIBEInterfaceEx; PluginInfo: pointer); stdcall;
begin
with PIBEPluginInfoEx(PluginInfo)^ do
begin
PluginName := 'Plugin Demonstration';
Description := 'No description';
PlaceMenu := '-10';
MenuStructure := PChar('CPlugin Demo|B' + #13 +
' CGetting Database Info|Eget_db_info|I3' + #13 +
' CGetting Database Objects Info' + #13 +
' CTable Info | Eget_table_info | I17' + #13 +
' CView Info | Eget_view_info | I18');
end;
end;
exports
get_db_info,
get_table_info,
get_plugin_info_ex,
get_view_info;
end.
только в этом варианте плохо с языковой поддержкой =)
что делает командир (как я предстовляю),
при запуске
1,1 смотрит спец каталог где лежат такие плгины
1,2 смотрит в настройках где ему брать плагин
2, создает экшен , запихивает иму значения из get_plugin_info_ex* типа кепшен, хинт ну и выполнение
3, получает хоткей из настроек командера
4, запихивается в меню где надо
5, ждет когда его вызовут
работа с хоткем будет стандартная.
при вызове будет передоваться выделеный файл\файлы, возможно панель.
правда где такие плагины использовать кроме дискриптион, не знаю =) но можно расширеное инфо о файле напрмер, больше пока не придумал =)