Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.25;
Скачать: CL | DM;

Вниз

Как запускать процедуру из DLL   Найти похожие ветки 

 
DJ X ©   (2002-03-10 17:12) [0]

Как запускать процедуру из DLL, если имя DLL можно узнаь только в процессе загрузки формы???


 
Иван Шихалев ©   (2002-03-10 17:20) [1]

LoadLibrary
GetProcAddress


 
DJ X ©   (2002-03-10 17:31) [2]

Поподробней, PLEASE!


 
McSimm ©   (2002-03-10 17:37) [3]

Вот из рабочей программы кусок. Сам отделишь зерна от плевел?

function TWorkFlowForm.InitializePlugin(FileName: String): Boolean;
var
I, LibHandle: Integer;
RegisterProc: TRegisterPlugin;
Plugin: TBasePlugin;
Panel: TPanel;
mItem, mAction: TMenuItem;
begin
Result := False;
LibHandle := LoadLibrary(Pchar(FileName));
if LibHandle = 0 then Exit;

// Load the registration procedure
RegisterProc := GetProcAddress(LibHandle, RegiserPluginProcedureName);
if not Assigned(RegisterProc) then Exit;

// register the plugin
Plugin := RegisterProc;
if Plugin = nil then Exit;

for I := 0 to Plugins.Count - 1 do
if TBasePlugin(Plugins[I]).PluginID = Plugin.PluginID then
begin
Plugin.Free;
Exit
end;

// Add to popup menu
mItem := TMenuItem.Create(TrayPopup);
mItem.Caption := Plugin.PluginShortName;
mItem.SubMenuImages := Plugin.ImageList;
TrayPopup.Items.Insert(2,mItem);
for I := 0 to Plugin.Actions.ActionCount - 1 do
begin
mAction := TMenuItem.Create(TrayPopup);
mAction.Action := Plugin.Actions[I];
mItem.Add(mAction)
end;

// initialize the plugin
Panel := TPanel.Create(Self);
with Panel do
begin
Visible := False;
Parent := StatePage;
BevelOuter := TBevelCut(bvNone);
BevelInner := TBevelCut(bvLowered);
Align := alClient
end;
Plugin.Initialize(Panel);
Plugin.CommandStarted := OnPluginCommandStarted;
Plugin.CommandStoped := OnPluginCommandStoped;
Plugin.PluginMessage := OnPluginMessage;
// Plugin.ActionUsedInShedule := IsActionUsedInShedule;
Plugins.Add(Plugin);
ListView.AddItem(Plugin.PluginShortName, Plugin);
// FPluginHandles.Add(IntToStr(LibHandle));
end;




Страницы: 1 вся ветка

Текущий архив: 2002.03.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-80551
KaPaT
2002-03-09 21:04
2002.03.25
Ребят, помогите если знаете!


7-80711
Andrey196
2001-12-23 20:06
2002.03.25
Как программно поменять разрешение экрана


1-80564
SuperIgor
2002-03-10 05:33
2002.03.25
Отображение иконок.


3-80434
blankalex
2002-02-27 12:24
2002.03.25
Ib_Util.dll


3-80432
alextov
2002-02-26 15:22
2002.03.25
Всегда видимое первое поле в DBGrid e, независимо от скроллинга