v1s2222 - спасибо за помощь, пороюсь на твоих ссылках, а пока:
Вот код загрузки плагинов:
Код:
procedure TMainForm.FormCreate(Sender: TObject);
var
i: Integer;
PluginsList: TStringList;
PlugMenuClass: TPluginMenuClass; // тип описывающий все что нужно для меню плагина
begin
PluginsList := TStringList.Create;
PluginsList := FindPlugins(ExtractFilePath(Application.ExeName)); // ищим все плагины и создаем список адресов файлов
PluginsList.Sort; // вот здесь решается порядок загрузки плагинов :)
SetLength(hPack, PluginsList.Count); // устанавливаю размер массива HMODULE равный кол-ву найденных плаинов
for i := 0 to PluginsList.Count - 1 do
begin
hPack[i] := LoadPackage(PluginsList[i]); // гружу плагин
if hPack[i] > 0 then
begin
PlugMenuClass := TPluginMenuClass(GetClass('TPluginMenu')); // получаю данные для меню
if Assigned(PlugMenuClass) then
begin
with PlugMenuClass.Create(Self) do // создаю меню для плагина
begin
OnClick := OpenPluginForm; // процедура запускает плагин
ShowHint := True;
Name := 'PM' + IntToStr(i); // задаю имя пункта меню (пока на всякий случай)
end;
mmComponents.Add(TPluginMenu(Self.FindComponent('PM' + IntToStr(i)))); // добавляю меню плагина в меню программы
end;
end;
end;
PluginsList.Free;
end;
P.S.
Ксожалению, по указанным ссылкам, ничего мне подходящего не нашел

Но спасибо за попытку помочь.
P.S. (2)
Проверенно! Handle hPack[0] и hPack[1] (ну соответственно и дальше так будет) отличаются, а это значит, что в каждый hPack ГРУЗИТСЯ СВОЙ ПЛАГИН!
НО ПОЧЕМУ ОН НЕ РАБОТАЕТ!!!!?????
